回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想编写表单操作,从<code>viwes.py</code>调用<code>newpost</code>函数,<code>newpost</code>函数有两个参数<code>newpost(request,myid)</code>,但是当我试图编写
<code>action="{%url 'newpost' %}"</code>出现如下错误:</p>
<p><code>TypeError at /newpost</code>
<code>newpost() missing 1 required positional argument: 'myid'</code></p>
<p>我如何以动作的形式发送此参数?
请告诉我</p>
<pre><code>
def newpost (request,myid):
blockedperson=[1]
assert isinstance(request, HttpRequest)
print("if1")
print (request.POST.get('postcontent'))
print (type(request.POST.get('postcontent')))
while request.POST.get('postcontent'):
print ("if2")
if myid not in blockedperson :
savepost=post()
savepost.person_id= 437819147
savepost.content=request.POST.get('postcontent')
savepost.p_date=dt.datetime.now()
savepost.save()
else :
blocked="sorry, you are blocked, you can not share a post, for more information contact with IT on 437819147@kku.edu.sa"
return render (request,'home.html',{'block':blocked})
allpost=post.objects.all()
allperson=person.objects.all()
allstudent=student.objects.all()
allteacher=teacher.objects.all()
allcomp=company_rep.objects.all()
return render (request,'home.html',{'posts':allpost , 'person':allperson,'student':allstudent,'teacher':allteacher,'comp':allcomp,'id':myid})
</code></pre>
<pre><code><form name="postbox" action="{%url 'newpost' %}" method="POST" align="center">
{% csrf_token %}
<label>shear your ideas, information, and experience...</label>
<br />
<textarea id="post" name="postcontent" rows="4" cols="50">
</textarea>
<br />
<input style="width: 31%;" type="submit" value="post" name="postsubmit">
</form>
</code></pre>
<p>这也是我的URL文件,如果我添加了任何参数,我是否应该更改它</p>
<pre><code>urlpatterns = [
path('' , app.views.login),
path('newpost' , app.views.newpost,name='newpost'),
path('signup' , app.views.signup,name='signup'),
path('signupteacher' , app.views.signupteacher,name='signupteacher'),
path('signupstudent' , app.views.signupstudent,name='signupstudent'),
path('signupcompany' , app.views.signupcompany,name='signupcompany')
]
</code></pre>