将外键下拉菜单添加到django表单

时间:2016-06-21 12:35:18

标签: 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 = 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

0 个答案:

没有答案