首页 > 解决方案 > 如何在 django 中的表单上获取用户名作为初始值

问题描述

我想在以下表单上获取初始值,但出现错误:未定义名称“用户”。我不知道如何获取 user.username。

class InvoiceForm(ModelForm):
date = forms.DateField(widget=DateInput)
company = forms.CharField(initial={"company": user.username}) 

class Meta:
    model = Invoice
    fields = "__all__"

创建发票的视图是:

class InvoiceCreate(CreateView):
form_class = InvoiceForm
model = Invoice
template_name = "sales/invoice_form.html"

def get_success_url(self, request):
    return reverse_lazy('invoice_details', kwargs={'pk' : self.object.pk})

def get(self, request, *args, **kwargs):
    self.object = None
    form_class = self.get_form_class()
    form = self.get_form(form_class)
    formset = InvoiceItemFormSet()
    products = list(Product.objects.values())
    return self.render_to_response(
        self.get_context_data(form=form,formset=formset, products=products))

def post(self, request, *args, **kwargs):
    self.object = None
    form_class = self.get_form_class()
    form = self.get_form(form_class)
    formset = InvoiceItemFormSet(self.request.POST)
    if (form.is_valid() and formset.is_valid()):
        return self.form_valid(form, formset)
    else:
        return self.form_invalid(form, formset)

def form_valid(self, form, formset):
    self.object = form.save()
    formset.instance = self.object
    formset.save()
    try:
        addmore = self.request.GET["addmore"]
        if addmore == "True":
                return redirect("update_invoice", pk=self.object.id)
    except Exception as e:
        pass
    return HttpResponseRedirect(self.get_success_url())

def form_invalid(self, form, formset):
    return self.render_to_response(self.get_context_data(form=form, formset=formset))

我想在以下表单上获取初始值,但出现错误:未定义名称“用户”。我不知道如何获取 user.username。

标签: djangodjango-modelsdjango-formsdjango-viewsdjango-templates

解决方案


推荐阅读