Ich schrieb Codes, aber ich weiß nicht, wie man 'name'
und 'value'
von versteckten Tag mit Django Vorlage einstellen. Ich lese Django's Widgets Docs, aber ich konnte den Weg nicht finden.Wie kann ich Werte für jede HiddenInput-Felder von Django setzen?
(Pdb) print(errors)
<ul class="errorlist"><li>friend_id<ul class="errorlist"><li>This field is required.</li></ul></li><li>add_remove<ul class="errorlist"><li>This field is required.</li></ul></li></ul>
Zuerst habe ich versucht, wie
<input type="hidden" name="friend_id" value="{{ user_info.user_id }}">
und
friend_id = request.POST.friend_id
zu schreiben, aber ich konnte nicht, wie POST-Werte ohne Django-Formular zu erhalten. Also habe ich Djangos Formular mit folgenden Codes benutzt.
views.py
from myapp.forms import HiddenUserPage
hiddenform = HiddenUserPage
if request.method == 'POST':
hidden = hiddenform(request.POST)
if hidden.is_valid():
from myapp.models import Friends
try:
friend_id = hidden.cleaned_data['friend_id']
add_remove = hidden.cleaned_data['add_remove']
if add_remove == "add":
f = Friends(user_id=request.user.user_id, friend_id=friend_id)
f.save()
elif add_remove == "remove":
f = Friends.objects.filter(user_id=request.user.user_id).get(friend_id=friend_id)
f.delete()
except:
errors = "DB error"
else:
errors = hidden.errors
else:
hidden = hiddenform()
errors = ""
view = {
'errors': errors,
'hidden': hidden,
}
template = 'myapp/user/user_page.html'
return render(request, template, view)
forms.py
class HiddenUserPage(forms.Form):
friend_id = forms.CharField(widget=forms.HiddenInput())
add_remove = forms.CharField(widget=forms.HiddenInput())
user_page.html
<form method="POST" action="" class="">
{% csrf_token %}
<p class="submit">
<button class="confirmbutton" type="submit">
{% if is_friend %}
remove friend
<!-- # I'd like to write like # -->
<!-- <input type="hidden" name="friend_id" value="remove"> # -->
<!-- <input type="hidden" name="friend_id" value="{{ user_info.user_id }}"> # -->
{{ hidden.add_remove }}
{{ hidden.friend_id }}
{% else %}
add friend
<!-- <input type="hidden" name="friend_id" value="add"> # -->
<!-- <input type="hidden" name="friend_id" value="{{ user_info.user_id }}"> # -->
{{ hidden.add_remove }}
{{ hidden.friend_id }}
{% endif %}
</button>
</p>
</form>
Sorry, mein Code ist verdreckt.
Ich danke Ihnen, Nikita. "anfänglich" funktioniert. Vielen Dank. – yamachan
@yamachan, Froh, dass ich dir helfen konnte. – Nikita
Wirklich danke. – yamachan