0
我正在为一篇文章制作一个包含标题,文本和图像字段的基本博客。但是当我试图在一个视图中将模型的TextField和FileField一起保存时,我一直在获取以下错误。Django - 将用户的TextField和FileField保存在一起
错误。
AttributeError at /new/
'Post' object has no attribute '_committed'
Request Method: POST
Request URL: http://127.0.0.1:8000/new/
Django Version: 1.9.8
Exception Type: AttributeError
Exception Value:
'Post' object has no attribute '_committed'
Exception Location: /usr/local/lib/python3.5/dist-packages/django/db/models/fields/files.py in pre_save, line 309
Python Executable: /usr/bin/python3
Python Version: 3.5.2
Python Path:
['/home/appu/Django/Colesk',
'/usr/lib/python35.zip',
'/usr/lib/python3.5',
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'/usr/lib/python3.5/lib-dynload',
'/home/appu/.local/lib/python3.5/site-packages',
'/usr/local/lib/python3.5/dist-packages',
'/usr/lib/python3/dist-packages']
一个帖子的类。
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length = 200)
text = models.TextField()
docfile = models.FileField(upload_to='documents/%Y/%m/%d')
created_date = models.DateTimeField(default = timezone.now)
published_date = models.DateTimeField(blank = True, null = True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
表格的帖子。
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title' ,'text','docfile')
信息查看获得这个职位
def new_post(request):
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = form.save(commit = False)
post.docfile = Post(docfile = request.FILES['docfile'])
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('post_detail', pk = post.pk)
else:
form = PostForm()
return render(request, 'core/post_edit.html', {'form' : form})
HTML模板后。
{% extends 'core/main.html' %}
{% block content %}
<h1>New Post</h1>
<form method="POST" class="post-form" enctype="multipart/form-data">{% csrf_token %}
{{form.as_p}}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% endblock %}
我试图将文本和图像保存在一起,以便我可以访问它进行显示。我该如何纠正错误或者是否有其他方法来实现这一目标?
谢谢主席先生,但我要如何做,在这样的帖子被保存为一个实体的方法吗?我必须写另一个模型吗? – atsh3
@ atsh3它只会被保存为一个实体。你为什么认为它会被保存为多个实体? –
我试过,但我仍然无法让它工作,我该用什么替换该行? – atsh3