我正在學習Django,並且我有ModelForm的問題。所以我有一個名爲mini_url的應用程序。在這個應用程序,我有一個模型:Pb初始化ModelForm
class MiniURL(models.Model):
url = models.URLField(unique=True)
code = models.CharField(unique=True, max_length=255)
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name='Date de création')
pseudo = models.CharField(max_length=30)
nb_acces = models.IntegerField(default=0)
我想根據我的模型創建一個表單,所以我在form.py文件這樣做:
from django.forms import ModelForm
from mini_url.models import MiniURL
def MiniURLForm(ModelForm):
class Meta:
model = MiniURL
fields = ['url', 'pseudo']
然後在我的鑑於我有這樣的:
from django.forms import ModelForm
from mini_url.models import MiniURL
def create_url(request):
if request.method == 'POST':
form = MiniURLForm(request.POST)
if form.is_valid():
new_url = MiniURL()
new_url.url = form.cleaned_data['url']
new_url.pseudo = form.cleaned_data['pseudo']
new_url.code = generer(5)
new_url.save()
else:
form = MiniURLForm()
return render(request, 'mini_url/create_url.html', {'form': form})
最後我的模板(mini_url/create_url.html)表示形式爲:
<p>
<form action="{% url "mini_url.views.create_url" %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit"/>
</form>
</p>
但是,當我嘗試acceed到模板我有這樣的錯誤:
MiniURLForm() missing 1 required positional argument: 'ModelForm'
這也表明了我的錯誤,在我看來,在哪裏有一行:
form = MiniURLForm()
所以我不明白爲什麼它失敗。我做了什麼文檔說我認爲:https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#topics-forms-modelforms
任何人都可以幫助我嗎?
標題不是字符限制;你有問題,而不是pb。 –