get_user_model()返回我的所有用户

时间:2017-11-08 15:31:07

标签: python django

我试图一次只将一个用户链接到我的模型。但是我使用了很多对,因为我想启用该选项,以便将来一次链接多个用户。当我运行此代码时,它会将我的所有用户分配给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']

1 个答案:

答案 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会更加困惑。