gpt4 book ai didi

Django 没有外键...但它是一个 ManyToManyField

转载 作者:行者123 更新时间:2023-12-02 07:07:38 24 4
gpt4 key购买 nike

除了遇到一个大问题外,我的管理员工作正常。我在帖子和标签之间创建了多对多关系。我可以在管理员中添加 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

同样,只有当我尝试添加 Post 实例时,问题才会出现

我的数据库中有一个用于关系的数据库表“website_tag_posts”。这里有什么问题吗?

谢谢

最佳答案

在我看来,您设置了 Post ModelAdminTag Inline .

ManyToMany 不是外键,因此您不能设置这样的内联。

如果您想要内联,请指定 m2m 字段的 through 模型作为模型。 m2m 字段的 through 表包含 ForeignKey给您Post表。

table tag <- table tag_post -> table post

class TagInline(admin.StackedInline):
model = Tag.posts.through

关于Django 没有外键...但它是一个 ManyToManyField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com