【发布时间】:2014-06-28 02:44:49
【问题描述】:
我是 Django 新手,在 Django 中与管理员一起使用 ManyToManyFields 时遇到一个问题。
所以我有两个模型类。
class Tag(models.Model):
tag = models.CharField(max_length=100)
def __str__(self):
return self.tag
class Meta:
ordering = ['tag']
verbose_name = "tag"
verbose_name_plural = "tags"
class MyiPhoneApp(models.Model):
tags = models.ManyToManyField(Tag)
name = models.CharField(max_length=200)
bundleID = models.CharField(max_length=200, primary_key=True)
def __str__(self):
return self.name
class Meta:
ordering = ['name']
verbose_name = "iPhone App"
verbose_name_plural = "iPhone Apps"
因此,当我将此类注册到管理员时,我可以添加一些 iPhone 应用程序。但是在添加一个带有 2 个标签的应用程序并保存后,当我添加第二个或更多应用程序时会发生一些奇怪的事情。
每个应用都有每个标签属性。
我认为多对多字段是表示这一点的正确关系。
一个应用有很多标签,一个标签有很多应用
但是现在每个 App 都分配了来自 db 的每个可用标签,这种行为是错误的:/
我的关系有问题还是我忘记了要添加到我的(模型)代码中的内容?
【问题讨论】:
-
您发布的代码不会导致此行为。您可以发布任何其他相关代码吗?可能是 Admin.py,任何形式,以及任何覆盖的保存功能
-
抱歉,我必须排除这种可能性,您是通过 shell 还是通过管理员检查与应用程序相关的标签?如果是通过管理员,您确定标签被选中而不只是显示在小部件中吗?
标签: django django-admin django-orm manytomanyfield