所以我有forms.py,如下所示:
from django import forms
from .models import SipExtension
from xmpp.models import xmpp_buddy_groups
class ExtensionForm(forms.Form):
xmpp_buddy_groups_choices = xmpp_buddy_groups.objects.values_list('group_name',flat=True)
boolean_choices=(('Yes','Yes'),('No','No'))
sip_extension = forms.IntegerField(min_value=0,max_value=100000)
sip_secret = forms.CharField(required=True,max_length=32)
commlink_push = forms.ChoiceField(choices=boolean_choices,widget=forms.CheckboxSelectMultiple,required=True)
real_name = forms.CharField(required=True,max_length=32)
xmpp = forms.ChoiceField(choices=boolean_choices,widget=forms.CheckboxSelectMultiple,required=True)
xmpp_username = forms.CharField(required = True,min_length=5)
xmpp_password = forms.CharField(max_length=32, widget=forms.PasswordInput)
xmpp_buddy_groups_names = forms.MultipleChoiceField(choices=xmpp_buddy_groups_choices,widget=forms.CheckboxSelectMultiple,required=False)
如果我的数据库已经由以前的迁移创建,那么它可以正常工作。但当我的数据库为空时,我面临着这个问题。为了进行测试,我删除了所有表,然后运行make migrations,得到以下错误:
django.db.utils.ProgrammingError: relation "extensions_sipextension" does not exist
LINE 1: ...p_buddy_groups_names"."xmpp_buddy_groups_id" FROM "extension...
当我需要在全新的系统上部署时,我在空白数据库上处理这个问题时遇到了问题。我可以通过注释URL来处理这个问题,URL正在执行需要这个表单的视图,但这是一个糟糕的临时解决方法。如何解决这个问题
我认为问题在于表单中的
xmpp_buddy_groups_choices
属性。查询集在项目加载时进行评估。因此,当您使用./manage.py makemigrations
时,xmpp_buddy_groups_choices
会尝试计算queryset,但失败,因为数据库中没有表。尝试将选项包装到函数中,并在choices
参数中传递该函数而且
choices
必须是元组列表(包含2个元素),但是xmpp_buddy_groups_choices
是字符串列表示例代码:
相关问题 更多 >
编程相关推荐