如何允许在django管理面板中编辑多对多关系
有一个类似这样的类定义如何允许在django管理面板中编辑多对多关系,django,django-admin,many-to-many,Django,Django Admin,Many To Many,有一个类似这样的类定义 class someClass(models.Model): field1 = models.ForeignKey('other_app.field4') field2 = models.ManyToManyField('other_app.field5') variable_name = [1-char choices] field3 = models.CharField(max_length=1, choices=variable_n
class someClass(models.Model):
field1 = models.ForeignKey('other_app.field4')
field2 = models.ManyToManyField('other_app.field5')
variable_name = [1-char choices]
field3 = models.CharField(max_length=1, choices=variable_name, blank=True)
当我尝试在管理面板中编辑此类时,我得到:
TypeError at /admin/[app]/[someClass]/add/
假设它与许多字段有关,有什么明显的解决方法吗
更新:好的,所以我解决了问题:我的搭档写的代码有一个迭代的
\uuu str\uu
函数:
def __str__(self):
str_rep = '%s for ' % (self.field1)
for p in self.field2:
str_rep += str(p) + self.field3
有没有关于如何重写的想法?以后,试着发布一个实际的回溯和相关的代码行。它会告诉我们这个密码到底在哪里被破解
字段2
不可编辑。您需要通过调用all()
或filter(…)
从ManyRelatedManager
获取QuerySet
请提供更多异常详细信息。
TypeError at/admin/[app]/[someClass]/add/ManyRelatedManager'对象不可编辑请求方法:POST请求URL:http://localhost:8000/admin/[应用程序]/[someClass]/add/Django版本:1.3.1异常类型:TypeError异常值:“ManyRelatedManager”对象不可编辑
是否可以发布回溯?我们在黑暗中!什么在试图迭代多个相关的管理器?你确定你没有在someClass.field2中为我做过类似的?
def __str__(self):
str_rep = '%s for ' % (self.field1)
for p in self.field2.all():
str_rep += str(p) + self.field3