目前我有一個腳本,允許用戶使用表單添加新酒店這裏是腳本。如何修復Meta.fields不能是字符串。你的意思是打字:('姓名')
我收到以下錯誤異常 AddHotelForm.Meta.fields不能是字符串。你的意思是輸入:('name',)?
請求方法:GET 請求URL:8000 /酒店/新 Django的版本:1.6.2 異常類型:類型錯誤 異常值:
AddHotelForm.Meta.fields不能是一個字符串。你的意思是輸入:('name',)?
異常地點:/usr/local/lib/python2.7/dist-packages/django/forms/models.py在新,線路261
我似乎無法得到它I'have檢查它好幾次,似乎沒有找到解決辦法。
views.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)
models.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
forms.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%}
錯誤不僅表明問題是什麼,而且還告訴你*正確*如何解決它。你有沒有嘗試遵循這個建議? –