gpt4 book ai didi

python - 如何修复 Meta.fields 不能是字符串。你是不是想输入 : ('name' )

转载 作者:太空狗 更新时间:2023-10-30 00:22:53 25 4
gpt4 key购买 nike

目前我有一个脚本允许用户使用表单添加新酒店这是脚本。

我得到以下错误异常AddHotelForm.Meta.fields 不能是字符串。您是要键入:('name',) 吗?

请求方式:GET请求网址:8000/hotel/newDjango 版本:1.6.2异常类型:TypeError异常值:

AddHotelForm.Meta.fields 不能是字符串。您是要键入:('name',) 吗?

异常位置:/usr/local/lib/python2.7/dist-packages/django/forms/models.py in new, line 261

我似乎没有得到它我已经检查了好几次,但似乎没有找到解决办法。

View .py

from django.shortcuts import render_to_response
from forms import AddHotelForm
from django.http import HttpResponseRedirect
from django.core.context_processors import csrf
from hotel.models import hotel

def create(request):

if request.POST:

form = AddHotelForm(request.POST)

if form.is_valid():

form.save()

return HttpResponseRedirect('/articles/all/')

else:

form = AddHotelForm()

args = {}
args.update(csrf(request))

args['form'] = form

return render_to_response('add_hotel.html', args)

模型.py

from django.db import models
from user.models import user


class hotel(models.Model):

publisher = models.ForeignKey(user)
name = models.CharField(max_length=100)
slug = models.SlugField(max_length=100)
creation_date = models.DateField(auto_now_add=True)

def __unicode__(self):
return self.name

表单.py

from django import forms
from models import hotel


class AddHotelForm(forms.ModelForm):

class Meta:
models = hotel
fields = ('name')

add_hotel.html

{% block content%}
<html>
<head>
<title></title>
<style type="text/css">
li {
padding:5px;
margin-bottom: 5px;
list-style: none;

}

.errorlist {
background-color: red;
color:white;
padding: 1px;
width:150px;
margin-bottom: 5px;
font-size: 12px;
font-family: arial, serif;

}

label {
display: block;
font-size: 12px;
font-family: arial, serif;
}
</style>
</head>
<body>
<form action="/hotel/new/" method="post">
{% csrf_token %}
<uL style="display:block;">
{{form.as_ul}}
</ul>
<input type="submit" name="submit" value="Create Hotel">
</form>
</body>
</html>
{% endblock%}

最佳答案

所以问题似乎正是错误消息中所述的问题。

你的问题是:

("name")

与此不同:

("name",)

试一试:

>>> type(("name"))
<type 'str'>
>>> type(("name",))
<type 'tuple'>

因此要修复它,请更改您的表单定义:

class AddHotelForm(forms.ModelForm):

class Meta:
models = hotel # This should be "model" not "models".
fields = ('name',)

关于python - 如何修复 Meta.fields 不能是字符串。你是不是想输入 : ('name' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22147222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com