向django表单添加外键下拉菜单

向django表单添加外键下拉菜单,django,Django,我有一个联系人信息模型/表单,我想在其中添加一个contacttype外键,该外键应显示在下拉菜单中: models.py class ContactType(models.Model): contact_type = models.CharField(max_length=50) class Contact(models.Model): contact_name = models.CharField(max_length=200) contact_email = m

我有一个联系人信息模型/表单,我想在其中添加一个contacttype外键,该外键应显示在下拉菜单中:

models.py

class ContactType(models.Model):
    contact_type = models.CharField(max_length=50)

class Contact(models.Model):
    contact_name = models.CharField(max_length=200)
    contact_email = models.CharField(max_length=200, validators=[validators.validate_email])
    contact_type = models.ForeignKey(ContactType, default='General Enquiry')

forms.py

class ContactForm(forms.ModelForm):
    # contact_type = forms.ModelChoiceField(queryset=ContactType.objects.all())

    class Meta:
        model = Contact
        fields = ['contact_name', 'contact_email']
如果将contact_type变量保留在原来的位置,则会出现以下错误:

no such table: contact_contacttype
这是我最后一次迁移:

dependencies = [
    ('contact', '0001_initial'),
]

operations = [
    migrations.CreateModel(
        name='ContactType',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('contact_type', models.CharField(max_length=50)),
        ],
    ),
    migrations.AddField(
        model_name='contact',
        name='contact_type',
        field=models.ForeignKey(default='General Enquiry', on_delete=django.db.models.deletion.CASCADE, to='contact.ContactType'),
    ),
]
然而,如果我将其移动到元类中(我应该吗?),则没有任何内容呈现到模板中


所以我的问题是,外键是合适的关系吗?如果是这样,我应该如何将ModelChoiceField添加到ContactForm中

这似乎与表单没有任何关系;您是否真的通过进行和运行迁移创建了该表?据我所知,我在问题中添加了最新的迁移文件,感谢您运行
python manage.py migrate
?这似乎与表单无关;您是否真的通过进行和运行迁移创建了该表?据我所知,我在问题中添加了最新的迁移文件,谢谢您运行
python manage.py migrate