Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在queryset中添加默认值?_Django - Fatal编程技术网

Django 如何在queryset中添加默认值?

Django 如何在queryset中添加默认值?,django,Django,我有一本记事本,一本记事本 而moneylog与moneybook有着千丝万缕的联系 moneybook = models.ForeignKey( moneybook_models.Moneybook, on_delete=models.CASCADE) pay_day = models.DateTimeField(default=NOW) payer = models.ForeignKey( user_models.User, on_delete=models.CASCADE,

我有一本记事本,一本记事本

而moneylog与moneybook有着千丝万缕的联系

moneybook = models.ForeignKey(
    moneybook_models.Moneybook, on_delete=models.CASCADE)
pay_day = models.DateTimeField(default=NOW)
payer = models.ForeignKey(
    user_models.User, on_delete=models.CASCADE, related_name="payer")
dutch_payer = models.ManyToManyField(
    user_models.User, related_name="dutch_payer", blank=True)
price = models.IntegerField()
category = models.CharField(max_length=10)
memo = models.TextField()
如果用户选择或不选择,我希望付款人以荷兰语保存默认付款人

这是我的表单.py

class CreateMoneylogForm(forms.ModelForm):
    class Meta:
        model = models.Moneylog
        fields = (
            "pay_day",
            "payer",
            "dutch_payer",
            "price",
            "category",
            "memo",
        )
        widgets = {
            "dutch_payer": forms.CheckboxSelectMultiple
        }

    def save(self, *args, **kwargs):
        moneylog = super().save(commit=False)
        return moneylog
class moneylog_create(FormView):

    form_class = forms.CreateMoneylogForm
    template_name = "moneylogs/create.html"

    def form_valid(self, form):
        moneylog = form.save()
        moneybook = moneybook_models.Moneybook.objects.get(
            pk=self.kwargs["pk"])
        form.instance.moneybook = moneybook
        if moneylog.payer not in moneylog.dutch_payer.all():
            moneylog.dutch_payer.add(moneylog.payer)
        moneylog.save()
        form.save_m2m()
        return redirect(reverse("cores:home"))
视图.py

class CreateMoneylogForm(forms.ModelForm):
    class Meta:
        model = models.Moneylog
        fields = (
            "pay_day",
            "payer",
            "dutch_payer",
            "price",
            "category",
            "memo",
        )
        widgets = {
            "dutch_payer": forms.CheckboxSelectMultiple
        }

    def save(self, *args, **kwargs):
        moneylog = super().save(commit=False)
        return moneylog
class moneylog_create(FormView):

    form_class = forms.CreateMoneylogForm
    template_name = "moneylogs/create.html"

    def form_valid(self, form):
        moneylog = form.save()
        moneybook = moneybook_models.Moneybook.objects.get(
            pk=self.kwargs["pk"])
        form.instance.moneybook = moneybook
        if moneylog.payer not in moneylog.dutch_payer.all():
            moneylog.dutch_payer.add(moneylog.payer)
        moneylog.save()
        form.save_m2m()
        return redirect(reverse("cores:home"))
如你所见

    if moneylog.payer not in moneylog.dutch_payer.all():
        moneylog.dutch_payer.add(moneylog.payer)
    moneylog.save()
    form.save_m2m()
    return redirect(reverse("cores:home"))

这不起作用。(荷兰语中没有付款人)我如何才能实现它?

这是否回答了您的问题?谢谢您的回复,但是保存是有效的,但是moneylog.dutch\u payer.add(moneylog.payer)不起作用。我尝试了save_m2m,但也不起作用。