Python Django——上传后硬设置的值
所以我有这个模型课Python Django——上传后硬设置的值,python,django,Python,Django,所以我有这个模型课 class Document(models.Model): docfile = models.FileField(upload_to=_upload_path) user = models.ForeignKey(User) user_id = user.primary_key options = 0 _upload_path = #... 由两个上载功能使用 def list(request): newdoc = None
class Document(models.Model):
docfile = models.FileField(upload_to=_upload_path)
user = models.ForeignKey(User)
user_id = user.primary_key
options = 0
_upload_path = #...
由两个上载功能使用
def list(request):
newdoc = None
# Handle file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document(docfile = request.FILES['docfile'])
newdoc.user = request.user
newdoc.options = 0
newdoc.save()
# Redirect to the document list after POST
return HttpResponseRedirect(reverse('notendur.views.list'))
else:
form = DocumentForm() # An empty, unbound form
# Load documents for the list page
documents = Document.objects.all()
# Render list page with the documents and the form
return render_to_response(# stuff)
及
因此,
options
属性充当两个上载函数之间的标识符,因此我知道哪个函数上载了哪个文档。我的问题是,无论我做什么,options
属性似乎都设置为0
。就像您对问题的评论一样,您不应该在模型上设置options=0
,而应该说models.PositiveIntegerField(默认值=0)
。另外,在您的模型上指定user\u id
是不必要的,因为您已经指定了user
ForeignKey这可能不会回答您的问题,但不要调用函数列表,因为它是保留名称。您是对的,我最好更改它。
def reikna(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
new_doc = Document(docfile = request.FILES['docfile'])
new_doc.user = request.user
# Marks the file as /options/ file
new_doc.options = 1
new_doc.save()
else:
form = DocumentForm() # An empty, unbound form
render_to_response( #stuff )