我的管理员工作得很好,而不是一个大的路障。我在帖子和标签之间建立了许多关系。我可以在我的管理员中使用CRUD标签,但出于某种原因,我收到以下错误消息:
Exception at /admin/website/post/add/
<class 'website.models.Tag'> has no ForeignKey to <class 'website.models.Post'
以下是我的模特:
class Post(models.Model):
user=models.ForeignKey(User, unique=True)
title=models.CharField(max_length=80)
slug=models.SlugField()
description=models.TextField(max_length=1000, blank=True)
created=models.DateField(auto_now_add=True)
#following info is for processing purposes
management_phone=models.CharField(max_length=200, blank=True)
management_email=models.CharField(max_length=200, blank=True)
processing=models.BooleanField(default=False)
transacted=models.BooleanField(default=False)
manually_closed=models.BooleanField(default=False)
def __unicode__(self):
return self.title
class Tag(models.Model):
title=models.CharField(max_length=100)
posts=models.ManyToManyField(Post, blank=True,null=True)
def __unicode__(self):
Return self.title
同样,只有在我尝试添加帖子实例
时才会出现问题我的数据库中有一个关系的数据库表“website_tag_posts”。这有什么问题?
由于
答案 0 :(得分:9)
听起来像是你设置了Post
ModelAdmin
Tag Inline
。
ManyToMany不是外键,因此您无法像这样设置内联。
如果需要内联,请将m2m字段的直通模型指定为模型。 m2m字段的直通表包含ForeignKey
表格的Post
。
table tag <- table tag_post -> table post
class TagInline(admin.StackedInline):
model = Tag.posts.through