我models.py认证的用户的字段是固定形式视图隐藏在Django
from django.db import models
from django.contrib.auth.models import User
class Question(models.Model):
asker = models.ForeignKey(User, related_name='questions')
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(auto_now_add=True)
slug = models.SlugField(max_length=250, unique_for_date='publish')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
forms.py
from django.forms import ModelForm
from .models import Question,Choice
from betterforms.multiform import MultiModelForm
class ChoiceForm(ModelForm):
class Meta:
model = Choice
exclude = ('question','votes','pub_date','slug')
class QuestionForm(ModelForm):
class Meta:
model = Question
exclude = ('asker','pub_date',)
class PollForm(MultiModelForm):
form_classes = {
'question':QuestionForm,
'choice':ChoiceForm,
}
views.py
class PollPost(CreateView):
form_class = PollForm
template_name = "blog/post.html"
def form_valid(self, form):
question = form['question'].save(commit=False)
question.asker = User.objects.get(username=request.user.username)
question.save()
choice = form['choice'].save(commit=False)
choice.question = question
choice.save()
return HttpResponse("congrat")
博客/ post.html
<div class="container">
<div class="jumbotron">
<form method="POST">
<div class="text-left">{% csrf_token %} {{ form.as_p }}
</div>
<button type="submit" class="btn btn-primary btn-outline">submit</button>
</form>
</div>
</div>
我用另一种观点认为,以发现问题,我认为Django的认为这是无效的形式 views.py
def poster(request):
if request.method =='POST':
form = PollForm(request.POST)
print(1)
if form.is_valid():
question = form['question'].save(commit=False)
question.asker = request.user
question.save()
choice = form['choice'].save(commit=False)
choice.question = question
choice.save()
return HttpResponse("congrat")
else :
print("unvalid")
return render(request, 'blog/post.html',
{'form': form})
else:
form = PollForm()
args = {'form': form}
return render(request, 'blog/post.html', args)
使用该视图打印1然后打印unvalid代替2
现在该视图不工作,因为我希望它提供了提问者字段并让用户从用户列表中进行选择,并且不会隐藏它,并且在提交表单后数据库中没有任何更改,页面也不会重定向也。
我应该如何编辑视图做出的选择的最高金额是三 并进行身份验证的用户是 由于事先
Django没有错误? – Andreas
@Andreas完全没有错误 –
你可以显示模板吗? – zaidfazil