<p>不要再使用<code>ModelName.objects.get(pk=1)</code>,因为它会引发异常。改用<code>ModelName.objects.filter(pk=1).first()</code>或<code>django.shortcuts.get_object_or_404(ModelName, pk=1)</code>。你知道吗</p>
<p>对于您的模型,重写<code>__str__</code>函数是一种很好的做法,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>class Personnel(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
adresse = models.CharField(max_length=150, verbose_name=_("Adresse"))
telephone = models.CharField(max_length=15, verbose_name=_("Téléphone"))
dossiermedical = models.ManyToManyField("DossierMedical", related_name=_("travaille_sur"))
def __str__(self):
return f'#{self.pk} {self.user.full_name}'
class DossierMedical(models.Model):
patient = models.OneToOneField("Patient", on_delete=models.CASCADE)
def __str__(self):
return f'#{self.pk} {self.patient.full_name}'
</code></pre>
<p>您还可以为<code>DossierMedical</code>模型添加内联,并将其放置到<code>PersonnelAdmin</code>的“inlines”字段中,如<a href="https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#inlinemodeladmin-objects" rel="nofollow noreferrer">here</a>所述。你知道吗</p>