簡體   English   中英

蟒蛇Django。 如何在 name_znat 字段中使用下拉元素輸入用戶選擇的文本

[英]Python django. How can I enter the text selected by the user with a drop-down element in the name_znat field

有一個帶有下拉元素的 html 表單:

<form method = "POST" action = "{% url 'create_group_handler'%}">
<select name = "select"> <! - Add an identifier here instead of using 'name' ->
<option value = "value1"> Value 1 </ option>
<option value = "value2" selected> Value 2 </ option>
<option value = "value3"> Value 3 </ option>
</ select>
</ form>

並且有一個 Python django 模型:

Znat Class (models.Model):
 name_znat = models.CharField ('Name znat', max_length = 200)

假設用戶選擇帶有文本“值 2”的下拉元素。 如何在name_znat字段中使用下拉元素輸入用戶選擇的文本?

您可以使用request.POST.get所有提交數據所在的選擇框值。

視圖.py

def myview(request):
    if request.method == "POST":
        selected_option = request.POST.get('select')
        Znat.objects.create(name_znat=selected_option)
    return redirect("/")

此外,每當您使用表單時,您都應該擁有{% csrf_token %} 除非您的視圖已明確標記為csrf_exempt 您可以在此處閱讀CSRF 令牌重要性。

<form method = "POST" action = "{% url 'create_group_handler'%}">
{% csrf_token %}
<select name = "select"> <! - Add an identifier here instead of using 'name' ->
<option value = "value1"> Value 1 </ option>
<option value = "value2" selected> Value 2 </ option>
<option value = "value3"> Value 3 </ option>
</ select>
</ form>

使用 ModelForm,請參閱https://docs.djangoproject.com/en/3.0/topics/class-based-views/generic-editing/#model-forms 最大限度地利用 Django 的內置功能。 祝你好運!

模型.py:

class Znat (models.Model):
    CHOICES = (
        ('value1', 'Value 1'),
        ('value2', 'Value 2'),
        ('value3', 'Value 3'),
    )
    name_znat = models.CharField ('Name znat', max_length = 200, choices=CHOICES)

表格.py:

class CreateZnatForm(ModelForm):
    class Meta:
        model = Znat
        fields = ('name_znat')
        widgets = {
            'name_znat': forms.Select(attrs={'class': 'form-control'}),
        }

視圖.py:

class ZnatCreate(CreateView):
    model = Znat
    fields = ['name_znat']

網址.py:

urlpatterns = [
    path('znat/', ZnatCreate.as_view(), name='create_group_handler'),
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM