Czy istnieje sposób na ustawienie relacji klucza obcego przy użyciu identyfikatora całkowitego modelu? Byłoby to dla celów optymalizacji.
Załóżmy na przykład, że mam model pracownika:
class Employee(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
type = models.ForeignKey('EmployeeType')
i
EmployeeType(models.Model):
type = models.CharField(max_length=100)
Chcę elastyczności związanej z nieograniczoną liczbą typów pracowników, ale we wdrożonej aplikacji prawdopodobnie będzie tylko jeden typ, więc zastanawiam się, czy istnieje sposób na zakodowanie identyfikatora i ustawienie relacji w ten sposób. W ten sposób mogę uniknąć wywołania db, aby najpierw pobrać obiekt EmployeeType.
źródło
type
pole jest zapisywane w bazie danych, jeślitype
później uzyskasz dostęp do właściwości, nie odzwierciedla to zmiany. Powiedział w kodzie, że to się nie powiedzieassert(employe.type.id == 4)
.Alternatywa wykorzystująca create do stworzenia obiektu i zapisania go w bazie danych w jednej linii:
źródło