Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Python Django ModelForm忽略通过表单提供的数据,并将超级用户名保存在表中_Python_Django_Django Forms - Fatal编程技术网

Python Django ModelForm忽略通过表单提供的数据,并将超级用户名保存在表中

Python 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

我不熟悉使用Django表单(总共是Django),在我的第一个表单中,我遇到了这个错误。无论我通过表单发布什么数据,它都会在所有字段中保存超级用户名

这是文件

forms.py

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如果使用对象本身,将打印出什么