如何在django中使用更多外键
我想更好地了解ForeignKey在django的工作原理,如何使用如何在django中使用更多外键,django,Django,我想更好地了解ForeignKey在django的工作原理,如何使用barcode引用field1和field2引用job class User(AuditModel): barcode = models.CharField(max_length=10, unique=True, default="not_specified", null=True, blank=True) name = models.CharField(max_length=100, uni
barcode
引用field1
和field2
引用job
class User(AuditModel):
barcode = models.CharField(max_length=10, unique=True, default="not_specified", null=True, blank=True)
name = models.CharField(max_length=100, unique=True, null=False, blank=False)
surname = models.CharField(max_length=100, null=False, blank=False)
job = models.CharField(max_length=100, null=False, blank=False)
def __str__(self):
return str(self.barcode)
class Test_table
field1 = models.ForeignKey(User, blank=False, null=False, on_delete=models.CASCADE, related_name="fields1")
field2 = models.ForeignKey(User, max_length=100, unique=True, blank=True, null=True, on_delete=models.CASCADE, related_name="fields2")
谢谢您可以使用
to_字段
参数
比如:
但请尽量只使用其中一个。数据复制从来都不是一个好主意。请不要这样做。您正在引入数据复制。结果是很难保持字段同步。如果以后用户更改了条形码/作业,则会导致大量额外的逻辑来保持
字段1
和字段2
同步。
field1 = models.ForeignKey(User, blank=False, null=False, on_delete=models.CASCADE, related_name="fields1", to_field="barcode")
field2 = models.ForeignKey(User, max_length=100, unique=True, blank=True, null=True, on_delete=models.CASCADE, related_name="fields2", to_field="job")