Django 如何在queryset中添加默认值?
我有一本记事本,一本记事本 而moneylog与moneybook有着千丝万缕的联系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,
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,但也不起作用。