我在Django 1.8.8中有两个模型:
class Company(models.Model):
name = models.CharField(max_length=200)
members = models.ManyToManyField(User)
class Folder(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(null=True, blank=True)
company = models.ForeignKey(Company, null=True, blank=True)
parent = models.ForeignKey("Folder", null=True, blank=True)
当我在模板中做的时候
{% for user in current_folder.company.members.all %}
我有时(几页后重新加载)会得到非常奇怪的错误:
FieldDoesNotExist: Company_members has no field named None
我也使用sqlite3数据库。任何人都知道哪里有问题?
答案 0 :(得分:1)
这很可能是您应该检查的相关 django 票证https://code.djangoproject.com/ticket/24513
这个问题虽然不是 100% https://github.com/jet-admin/jet-django/issues/7
您可能会通过阅读主题获得一些见解。
答案 1 :(得分:0)
数据库中有可复制的项目。
您可以使用以下方式列出模型中的所有项目进行检查:
YourModel.objects.values_list('id', 'name')
要避免它,请确保设置unique = True。
name = models.CharField(max_length=200, unique=True)
答案 2 :(得分:0)
如果你想从一个实例访问一个 ForeignKey 字段,你不能像这里那样直接访问它
{% for user in current_folder.company.members.all %}
ForeignKey 字段是一家公司,所以它应该是
current_folder.company_set()
注意:ForeignKey 返回一组对象。在你的情况下,一组公司。这就是它返回 FieldDoesNotExist
答案 3 :(得分:-1)
如果要访问相关对象,则在ManyToManyFields中必须添加SELECT t.FK_Product_ID AS Product
, o.[2013] AS Orders_2013
, r.[2013] AS Revenue_2013
, o.[2014] AS Orders_2014
, r.[2014] AS Revenue_2014
, o.[2015] AS Orders_2015
, r.[2015] AS Revenue_2015
FROM OrdersCrossTabQuery o
INNER JOIN RevenueCrossTabQuery r
ON o.[Product] = r.[Product]
参数。因此,对于这种情况,应该是这样的:
related_name
答案 4 :(得分:-1)
尝试添加空字段和空白字段
members = models.ManyToManyField(user, blank=True, null=True)