Python 使用表单时从其他应用程序导入模型的正确方法?
我有一个模型,库存。位置。这是在库存应用程序中。我正在另一个应用程序中创建表单,并引用inventory.Location。具体地说,我正在用所有位置填充一个选择字段(带有次要标准)。在我尝试进行任何迁移之前,这种方法都很有效,此时Django会抛出一个错误:Python 使用表单时从其他应用程序导入模型的正确方法?,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我有一个模型,库存。位置。这是在库存应用程序中。我正在另一个应用程序中创建表单,并引用inventory.Location。具体地说,我正在用所有位置填充一个选择字段(带有次要标准)。在我尝试进行任何迁移之前,这种方法都很有效,此时Django会抛出一个错误: django.db.utils.OperationalError:没有这样的列:库存位置。联系 contact只是一个字段,删除contact只会导致另一个字段发生相同的错误。Django似乎不喜欢为LocationForm创建一个实例,
django.db.utils.OperationalError:没有这样的列:库存位置。联系
contact只是一个字段,删除contact只会导致另一个字段发生相同的错误。Django似乎不喜欢为LocationForm创建一个实例,因为它绑定到inventory.Location模型。如果我注释掉'LocationForm'的内容并重新运行迁移尝试,那么它工作得非常好。从零开始删除任何以前的迁移和/或重新构建DB似乎没有任何影响,具体来说是LocationForm类内容
是否有一种最佳实践方法可以让我处理这个问题?一切正常;我只需要注释掉LocationForm的内容,运行迁移,然后取消注释。我显然是走错了路
from django import forms
from inventory.models import Location
def get_locations():
location_list = []
locations = Location.objects.all()
for location in locations:
if location.primary_ip:
site_list.append(
(location.name, location.name)
)
return location_list
class LocationForm(forms.Form):
location = forms.ChoiceField(
widget=forms.Select(),
choices=get_locations(),
label=False
)
使用表单而非外键的任何原因?(或OnetoOneField)