我试图一次只将一个用户链接到我的模型。但是我使用了很多对,因为我想启用该选项,以便将来一次链接多个用户。当我运行此代码时,它会将我的所有用户分配给Company模型,我需要它只分配一个。任何帮助将不胜感激。
型号:
class Company(models.Model):
user = models.ManyToManyField(get_user_model())
name = models.CharField(max_length=265)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('nodisoapp:home')
查看
class CreateCompany(LoginRequiredMixin, generic.CreateView):
login_url = '/scrty/login/'
form_class = forms.Companyform
template_name = 'nodiso/create_company.html'
表格
class Companyform(forms.ModelForm):
class Meta:
model = models.Company
fields = ['name']
答案 0 :(得分:0)
目前,您尚未将用户添加到字段列表中,因此根本不应设置user
字段。
您可以通过覆盖form_valid
方法将登录用户添加到公司:
class CreateCompany(LoginRequiredMixin, generic.CreateView):
login_url = '/scrty/login/'
form_class = forms.Companyform
template_name = 'nodiso/create_company.html'
def form_valid(self, form):
response = super(CreateCompany, self).form_valid(form)
self.object.user.add(self.request.user)
return response
由于它是一个多对多字段,因此将它命名为users
会更加困惑。