在我的模型中,我想选择另一个模型字段,而不是模型的 str 方法。我曾经使用过to_field但没有用,还有其他方法可以做到这一点吗?
class Porumbei(models.Model):
...
id_porumbel = models.AutoField(primary_key=True)
data_adaugare = models.DateTimeField(default=timezone.now, null=True, blank=True)
crescator = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, null=True, blank=True,
related_name='porumbeii')
serie_inel = models.CharField(max_length=25, null=False, blank=False, unique=True,
help_text="Seria de pe inel. Ex: RO 123456")
anul = models.CharField(max_length=4, null=False, blank=False)
culoare = models.ForeignKey(CuloriPorumbei, on_delete=models.CASCADE, null=False, blank=False, )
culoare_ochi = models.ForeignKey(CuloriOchi, on_delete=models.CASCADE, null=False, blank=False, )
sex = models.CharField(max_length=6, choices=SEXE)
ecloziune = models.DateField(null=True, blank=True)
rasa = models.CharField(max_length=50, null=True, blank=True)
linie = models.CharField(max_length=50, null=True, blank=True)
nume = models.CharField(max_length=50, null=True, blank=True)
tata = models.ForeignKey('Perechi', to_field='mascul', on_delete=models.CASCADE,
related_name="porumbei_masculi", null=True, blank=True)
mama = models.ForeignKey('Perechi', to_field='femela', on_delete=models.CASCADE,
related_name="porumbei_femele", null=True, blank=True)
def __str__(self):
return self.serie_inel
class Perechi(models.Model):
boxa = models.PositiveIntegerField(primary_key=True, unique=True)
sezon = models.CharField(max_length=4, null=False, blank=False, default=datetime.now().year)
mascul = models.ForeignKey(Porumbei, unique=True, on_delete=models.CASCADE, limit_choices_to=Q(sex="Mascul"),
related_name="perechi_masculi")
femela = models.ForeignKey(Porumbei, unique=True, on_delete=models.CASCADE, limit_choices_to=Q(sex="Femelă"),
related_name="perechi_femele")
def __str__(self):
return self.boxa
我希望在tata字段中添加新的Porumbei来选择perechi.mascul而不是perechi.boxa。与Porumbei的妈妈场相同。我该怎么办?预先感谢!