Python 如何删除Django中多个字段的实例
我试图删除Django中多个字段的一个实例。 我试过这个,但不起作用:Python 如何删除Django中多个字段的实例,python,django,Python,Django,我试图删除Django中多个字段的一个实例。 我试过这个,但不起作用: act = Activity.objects.get(pk=pk) act.save() attendee, _ = Attendee.objects.get_or_create(student=request.user) **act.attendee.delete(attendee)** return... 这样做的目的是删除特定活动的主键指定的参与者 这些是我的模型: class Attendee(models.Mod
act = Activity.objects.get(pk=pk)
act.save()
attendee, _ = Attendee.objects.get_or_create(student=request.user)
**act.attendee.delete(attendee)**
return...
这样做的目的是删除特定活动的主键指定的参与者
这些是我的模型:
class Attendee(models.Model):
student = models.ForeignKey(User, related_name="attendee")
class Activity(models.Model):
type = models.CharField(max_length=50, default="")
title = models.CharField(max_length=200, default="")
description = models.CharField(max_length=500)
owner = models.ForeignKey(User, related_name="owner")
college = models.CharField(max_length=200)
location = models.CharField(max_length=200)
room = models.CharField(max_length=200)
startDate = models.DateTimeField(null=True, blank=True)
endDate = models.DateTimeField(null=True, blank=True)
attendee = models.ManyToManyField(Attendee, related_name="attendees",null=True, blank=True)
要删除多个关系,请使用remove()而不是delete
act.attendee.remove(attendee)
我还建议更改命名约定以提高可读性
class Activity(models.Model):
attendees = models.ManyToManyField(Attendee, related_name="activities", null=True, blank=True)
因此,删除逻辑将是
act.attendees.remove(attendee)
也可以使用反向关系删除
attendee.activities.remove(act)