我正在创建一个页面,我的用户可以在其中编辑他们的文章,但是有一个问题,我的表单在提交表单时没有保存修改。我们来看看:
views.py
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
exclude = ['date', 'rating', 'user']
form = ArticleForm()
第3至8行:是否检查您自己的文章是否存在问题。
第10到18行:这些行之间存在问题,我提交表单时表单未保存
forms.py (ModelForm)
class Article(models.Model):
user = models.ForeignKey(User)
titre = models.CharField(max_length=100, unique=True)
summary = RichTextField(null=True, max_length=140)
contenu = RichTextField(null=True)
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de parution")
image = models.ImageField(upload_to='article', default='article/amazarashi.jpeg')
rating = RatingField(can_change_vote=True)
tags = TaggableManager(through=TaggedItem, blank=True)
def __str__(self):
return self.titre
(第4行:我在保存时排除日期,评分和用户名,以便用户无法更改这些信息。)
我的template.html中没有任何问题,urls.py不会因为我检查了10次而感到烦恼:)
任何帮助都会很棒,我已经在1个多月内阻止了这个问题...
*******编辑*******
Models.py
{% block body %}
{% if user.is_authenticated %}
<p>Authentificated as <strong>{{ user.username }}</strong></p>
{% else %}
<p>NOT Authentificated</p>
{% endif %}
<h1>Edit this {{ article.titre }}</h1>
<br>
<div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
<form enctype='multipart/form-data' action="{% url "article.views.index" %}" method="post" class="form" autocomplete="off" autocorrect="off">
{% csrf_token %}
<div class="form-group">TITRE
{{ form.titre.errors }}
{{ form.titre }}
</div>
<div class="form-group">SUMMARY
{{ form.media }}
{{ form.summary.errors }}
{{ form.summary }}
</div>
<div class="form-group">CONTENU
{{ form.media }}
{{ form.contenu.errors }}
{{ form.contenu }}
</div>
<div class="form-group">
{{ form.image.errors }}
{{ form.image }}
</div>
<div class="form-group">TAGS
{{ form.tags.errors }}
{{ form.tags }}
</div>
<input type="submit" class="btn btn-default" value="Submit"/>
</div>
</form>
{% endblock %}
Template.html
{{1}}
答案 0 :(得分:2)
根据您的错误消息..修改模板中的表单:
<form enctype='multipart/form-data' ...>
将request.FILES
添加到表单创建中:
if request.POST:
form = ArticleForm(request.POST, request.FILES, instance=article)
更新:
您有奇怪的url
标记参数。您确定已将您的网址定义为:('...', your_view, name='article.views.index')
吗?我有疑问因为url
标记将url name作为参数而不是视图路径,并且没有人通常使用这样的url名称。