【发布时间】:2019-09-30 16:38:12
【问题描述】:
我正在用 django 编写一个社交媒体应用程序。我设计了一个模型,但是当我尝试填充它时,它会抛出这个错误:
ValueError at /admin/social/group/add/
"<Group: Group object (None)>" needs to have a value for field "id" before this many-to-many relationship can be used.
这些是我的模型:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=20)
class Group(models.Model):
admin = models.ForeignKey(
Person,
on_delete=models.CASCADE,
related_name='group_admin'
)
members = models.ManyToManyField(
Person,
related_name='group_members',
blank=True
)
def save(self, *args, **kwargs):
self.members.add(self.admin)
super(Group, self).save(*args, **kwargs)
我希望admin 也成为group 成员。
当我像这样保持save 方法时...
def save(self, *args, **kwargs):
super(Group, self).save(*args, **kwargs)
self.members.add(self.admin)
...它不会引发任何错误,但成员字段也不会按预期填充。
我想在创建Group 期间提交管理员时实现这一点,成员字段将自动填充与管理员相同的外键。
我的意思是,admin 将在同一组的members 中。
谁能帮我实现这个目标?
【问题讨论】:
标签: django django-models django-rest-framework