Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用表单时从其他应用程序导入模型的正确方法?_Python_Django_Django Models_Django Forms - Fatal编程技术网

Python 使用表单时从其他应用程序导入模型的正确方法?

Python 使用表单时从其他应用程序导入模型的正确方法?,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我有一个模型,库存。位置。这是在库存应用程序中。我正在另一个应用程序中创建表单,并引用inventory.Location。具体地说,我正在用所有位置填充一个选择字段(带有次要标准)。在我尝试进行任何迁移之前,这种方法都很有效,此时Django会抛出一个错误: django.db.utils.OperationalError:没有这样的列:库存位置。联系 contact只是一个字段,删除contact只会导致另一个字段发生相同的错误。Django似乎不喜欢为LocationForm创建一个实例,

我有一个模型,库存。位置。这是在库存应用程序中。我正在另一个应用程序中创建表单,并引用inventory.Location。具体地说,我正在用所有位置填充一个选择字段(带有次要标准)。在我尝试进行任何迁移之前,这种方法都很有效,此时Django会抛出一个错误:

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)