Django 保存包含引用到Postgresql数据库表中另一个模型的ForeignKey字段的ModelForm

Django 保存包含引用到Postgresql数据库表中另一个模型的ForeignKey字段的ModelForm,django,postgresql,django-models,django-forms,django-model-field,Django,Postgresql,Django Models,Django Forms,Django Model Field,下面是我的模型 class Seminar(models.Model): seminarID = models.AutoField(primary_key=True) presenter_name = models.CharField(max_length=200) location_name = models.TextField() seminar_DT = models.DateTimeField(default=datetime.datetime.now) capacity = model

下面是我的模型

class Seminar(models.Model):
seminarID = models.AutoField(primary_key=True)
presenter_name = models.CharField(max_length=200)
location_name = models.TextField()
seminar_DT = models.DateTimeField(default=datetime.datetime.now)
capacity = models.IntegerField(default=50)

class Registration(models.Model):
registration_ID = models.AutoField(primary_key=True)
seminar=models.ForeignKey(Seminar,to_field='seminarID',on_delete=models.CASCADE)      
attendee_name = models.CharField(max_length=200,null=True)
email_address = models.EmailField()
email_sent = models.BooleanField(default=False)
这是我为注册模型创建的模型表单

class RegistrationForm(forms.ModelForm):

class Meta:
    model = Registration
    widgets = {
        "registration_ID": forms.NumberInput(attrs={'required': "required"}),
        "seminar": forms.SelectMultiple(attrs={'required': "required"}),
        "attendee_name": forms.TextInput(attrs={'required': "required"}),
        "email_address": forms.TextInput(attrs={'required': "required"}),
        "email_sent": forms.NullBooleanSelect(attrs={'required': "required"}),

    }
    fields = ('seminar','attendee_name','email_address','email_sent')
当我在我的模板上运行上面的注册表单时,我得到以下窗口

研讨会字段,在注册模型中定义为外键,并在研讨会模型中引用种子。研讨会出现在预先填写的登记表中,虽然可以,但它显示为研讨会对象(2)、研讨会对象(3)。。。 研讨会模型中的另一个重要部分是AutoField和Primarykey

当我保存注册表单时,我的postgresql数据库不会使用新值和所选对象(*)进行更新。请告知

这些链接中提供了研讨会表和登记表快照: 及

您必须在注册类中添加
\uuu str\uuuu()
方法(对于Django 3.X)。如果您使用的是Django 2.X,请添加相应的方法
\uuuuUnicode\uuuuUnicode(self)
。如下所示:

这是为了告诉Django哪个是注册对象的字符串表示形式。为了将对象表示呈现到小部件中,需要这些信息。 还可以查看以下内容

def __unicode__(self):
    return "%s (%s)"%(self.presenter_name, datetime.datetime.strftime(self.seminar_DT, "%Y-%m-%d %H:%M "))