Python Django ModelForm忽略通过表单提供的数据,并将超级用户名保存在表中
我不熟悉使用Django表单(总共是Django),在我的第一个表单中,我遇到了这个错误。无论我通过表单发布什么数据,它都会在所有字段中保存超级用户名 这是文件 forms.pyPython Django ModelForm忽略通过表单提供的数据,并将超级用户名保存在表中,python,django,django-forms,Python,Django,Django Forms,我不熟悉使用Django表单(总共是Django),在我的第一个表单中,我遇到了这个错误。无论我通过表单发布什么数据,它都会在所有字段中保存超级用户名 这是文件 forms.py from django.forms import ModelForm from .models import * class NewCustomer(ModelForm): class Meta: model = Customer fields = ('name', 'mobi
from django.forms import ModelForm
from .models import *
class NewCustomer(ModelForm):
class Meta:
model = Customer
fields = ('name', 'mobile_number', 'email', 'address')
Views.py
from django.shortcuts import render, get_object_or_404, redirect
from .models import *
from .forms import *
# Create your views here.
def customers(request):
customers = Customer.objects.all().order_by('id')
return render(request, "customers.html", {'customers': customers, 'custactive': "active"})
def customer_details(request, pk):
customer = get_object_or_404(Customer, pk=pk)
return render(request, "customer_details.html", {'customer': customer})
def new_customer(request):
if request.method == 'POST':
form = NewCustomer(request.POST)
if form.is_valid():
customer = form.save(commit=False)
customer.name = request.user
customer.mobile_number = request.user
customer.email = request.user
customer.address = request.user
customer.save()
return redirect ('customers')
else:
form = NewCustomer()
return render(request, "new_customer.html", {'form': form})
有人能告诉我代码有什么问题吗?可以理解,我需要保存随表单提供的新数据
非常感谢您的帮助…问题是您需要告诉表单要从
用户
对象获取哪些字段。
现在,如果您扩展了用户
型号,并指定了名称
,手机号
,地址
,则需要修改代码
def new_customer(request):
if request.method == 'POST':
form = NewCustomer(request.POST)
if form.is_valid():
customer = form.save(commit=False)
customer.name = request.user.name
customer.mobile_number = request.user.mobile_number
customer.email = request.user.email
customer.address = request.user.address
customer.save()
return redirect ('customers')
whz superuser的名称保存在所有字段中的原因是,所有模型都有其str方法,该方法告诉python如果使用对象本身,将打印出什么