我正在尝试将值分配给ManyToManyField,但是,我在数据库上设置值的任何尝试均失败。
下面是我的简化模型。py
class AppointmentRequest(models.Model):
my_name = models.TextField(default='')
requester_name = models.TextField(default='')
meeting_date = models.TextField(default='')
class CustomUser(AbstractUser):
firstname = models.TextField(default='')
appointments = models.ManyToManyField(AppointmentRequest)
下面是views.py中处理某些功能的功能:
from .models import AppointmentRequest
def book_appointment(request, template_name)
apt_request = AppointmentRequest()
apt_request.requester_name = requesting_user
apt_request.meeting_date = date
apt_request.save()
update_user.appointments = apt_request
update_user.save()
通过以上操作,我得到以下错误Direct assignment to the forward side of a many-to-many set is prohibited. Use appointments.set() instead.
但是,如果我使用set
而不是=
,则会出现以下错误django manytomany 'str' object has no attribute 'set'
。我不确定是什么问题。请帮助。
从您的代码尚不清楚update_user
是什么,但是它可能不是CustomUser
的实例,正如错误所提到的,您不能使用直接分配向M2M添加元素,必须使用[C0 ]或add
(更多信息:set
)。
检查https://docs.djangoproject.com/en/2.2/topics/db/examples/many_to_many/的类型,检查其来源,是否确定是您的update_user
实例?该名称使人想起一个功能。