【问题标题】:Django : Using selected radio button's value in views to update value in databaseDjango:在视图中使用选定单选按钮的值来更新数据库中的值
【发布时间】:2020-04-15 14:14:37
【问题描述】:

我正在尝试编写一个视图,其中选定的单选按钮的值/id(不确定)将在单击提交后传递给 django 视图,然后该值应存储在特定用户的列中以及问题单选按钮有一个答案。

models.py


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE) 

labels=[]
for i in range(1,16):
    labels.append('a'+str(i))

for label in labels:
    Profile.add_to_class(label, models.CharField(max_length=255, default='NULL', blank='NULL'))


class Image(models.Model):

    p_img = models.ImageField(max_length=255,upload_to='p_image',default='NULL', blank='NULL')
    p_img_count = models.IntegerField(default=0)

    s_image1 = models.ImageField(max_length=255,upload_to='s_image')
    s_image2 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image3 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image4 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image5 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')


    def __str__(self):
        return(str(self.p_image))




class Score(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    points = models.IntegerField()

    def __str__(self):
        return(self.username)

views.py

def update_db(request):

    # getting selected radio button value and use to it update that particular user's answer in Profile model. 

    return render(request, index.html, {})

index.html

<form action='/update' >
<p style="background-color: #ddd674">Primary image :<img src="{{media_url}}{{ p_img.p_img }}" height=300px > <br> 
</p>
<hr height=2px >
<p style="background-color: #a7e0d9">Secondary image :


    {% for img in s_img %}
        {% if img  %}
            <input type="radio" id="{{ img }}" name="ans" >
                <img src="{{media_url}}{{ img }}" height=250px > 
            </input>
        {% endif %}
    {% endfor %}
    <br> 

</p>

    <button type="submit" name="next" class="btn btn-primary pull-right"> Next / Submit </button></h5>
  </form>

我主要关心的是获取查询以获取视图函数中选定的单选按钮值并将其更新给该特定用户。

【问题讨论】:

  • 我发现要请求单选按钮值,我可以使用 request.POST.get("ans") ,这就是问题所在。并在表单结束前&lt;input type="submit" value="Submit" &gt; 触发表单动作。

标签: django sqlite radio-button django-queryset


【解决方案1】:

您完全缺少Form 抽象层。

请阅读:https://docs.djangoproject.com/en/2.2/topics/forms/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 2019-12-13
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2016-07-27
    • 2013-09-14
    相关资源
    最近更新 更多