当前位置: 首页 > 知识库问答 >
问题:

禁止保存()以防止由于未保存的相关对象'team'而导致数据丢失

李谦
2023-03-14

当我创建新的团队并试图将其关联到我的用户配置文件时,我发现这个错误正在显示。我想要一个团队,很多成员和只有一个创建者(或管理的团队),创建者也是小组的成员。如何将团队与用户配置文件关联?

models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    steam_id = models.IntegerField(unique=True, null=True)
    steam_name = models.CharField(max_length=255, null=True, unique=True)
    profile_pic = models.ImageField(upload_to='profile_images', default='profile_images/default_user.png', blank=True)
    rank = models.IntegerField(default=1)
    matches = models.IntegerField(default=0)
    kda = models.IntegerField(default=0)
    team = models.ForeignKey(Team, related_name='players', on_delete=models.CASCADE, null=True)

class Team(models.Model):
    creator = models.ForeignKey(User, related_name='teams', on_delete=models.CASCADE)
    name = models.CharField(max_length=20, unique=True)
    rank = models.IntegerField(default=0)

views.py

class TeamsCreateView(generic.CreateView):
    model = Team
    form_class = TeamCreationForm

    def form_valid(self, form):
        form.instance.creator = self.request.user
        self.request.user.profile.team = form.instance
        print(form.instance)
        print(self.request.user.profile.team)
        self.request.user.profile.save()
        return super().form_valid(form)

共有1个答案

督德明
2023-03-14

之所以出现此错误,是因为您需要首先保存团队实例,然后在form.instance.creator=self.request.user调用form.instance.save()之后保存配置文件实例

 类似资料:
  • 我有一个数据库(和模型)情况,如下模式所示: 这是ModelSerialize: 我将这个json发送到api方法 视图中我的post_create实现: 更新 现在我得到了这个错误:django.db.models.fields.related_descriptors.relatedObjectDoesNotexist:Post没有ID。 这些是我的模型: 类PostCategory(Model

  • p3=Place(name='Demon Dogs',address='944 W.Fullerton')restaurant.objects.create(Place=p3,serves_hot_dogs=true,serves_pizza=false) Traceback(最近调用为last): ... valueerror:save()禁止,以防止由于未保存的相关对象'Place'而丢失数据

  • 我试图使用inlineformset创建父模型和一些子模型。下面是我的观点。代码可以将初始Rfq模型保存到数据库中,但当它试图将行保存到InlineFormSet时会出错。这是一对多关系,但使用ForeignKey字段。 这是我的回溯

  • 问题内容: 我需要将新创建的主键传递给同一视图中的另一个表单字段,但是出现错误。有什么建议可以使这项工作吗?看起来就像过去,这就是答案: 根据文档,这就是较新的Django版本中发生的情况 p3 =地点(名称=``恶魔狗’‘,地址=‘944 W.富乐顿’)Restaurant.objects.create(地点= p3,serve_hot_dogs = True,serves_pizza = Fa

  • 我需要知道如何清除导致以下错误的未保存的相关数据: 禁止保存()以防止由于未保存的相关对象'order'而导致数据丢失。 我的代码按预期工作,但我未能完成一个订单。此后,任何保存新订单的尝试都会导致上述错误。我知道原因是对的更改,但肯定有一些方法可以通过日志之类的方式清除这些更改...我尝试重新创建数据库和sqlflush命令,但都不起作用。 视图 模型 表格

  • 我正在学习SpringJPA,我从将对象映射到表开始。我对OneToOne和OneToMany的关系没有问题,但我不太明白为什么我不能预先列出一个与许多关系相关的对象。我有一本可以有很多作者的书,还有一本可以有很多书的作者。通过中间表book_author正确生成模式(我可以在MySql Workbench中看到),但我得到以下示例: Hibernate:在作者(名字、姓氏)中插入值(?,) Hi