相关疑难解决方法(0)

Django模板:选择的详细版本

我有一个模特:

from django.db import models

CHOICES = (
    ('s', 'Glorious spam'),
    ('e', 'Fabulous eggs'),
)

class MealOrder(models.Model):
    meal = models.CharField(max_length=8, choices=CHOICES)
Run Code Online (Sandbox Code Playgroud)

我有一个表格:

from django.forms import ModelForm

class MealOrderForm(ModelForm):
    class Meta:
        model = MealOrder
Run Code Online (Sandbox Code Playgroud)

我想使用formtools.preview.默认模板打印选择的短版本('e'而不是'Fabulous eggs'),因为它使用

{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Run Code Online (Sandbox Code Playgroud)

我想要一个像上面提到的一般模板,但是打印'Fabulous eggs'代替.

[因为我怀疑真正的问题在哪里,我为所有人加粗了:)]

我知道如何以一种本身丑陋的方式获得一个选择的冗长版本:

{{ form.meal.field.choices.1.1 }}
Run Code Online (Sandbox Code Playgroud)

真正的痛苦是我需要得到所选择的选择,而我想到的唯一方法是迭代选择和检查{% ifequals currentChoice.0 choiceField.data %},这甚至更加丑陋.

可以轻松完成吗?或者它需要一些模板标签编程?难道这不应该在django中可用吗?

django django-templates django-forms

122
推荐指数
6
解决办法
6万
查看次数

如何在Django中选择标签来形成ChoiceField?

我有一个ChoiceField,现在如何在需要时获得"标签"?

class ContactForm(forms.Form):
     reason = forms.ChoiceField(choices=[("feature", "A feature"),
                                         ("order", "An order")],
                                widget=forms.RadioSelect)
Run Code Online (Sandbox Code Playgroud)

form.cleaned_data["reason"] 只会给我"特色"或"订单"左右.

python django choicefield

61
推荐指数
4
解决办法
6万
查看次数

Django打印选择价值

EMP_CHOICES = (
         (0,'-- Select --'),
         (1,'Good'),
         (2,'Average'),
     )

class EMPFeedback(models.Model):
     user_choices = models.IntegerField(choices=EMP_CHOICES)
Run Code Online (Sandbox Code Playgroud)

如果存储在db中的值为1,则user_choices如何打印相应的user_choices对应的值(即1 == GOOD)

fb = EMPFeedback.objects.get(id=1)
print fb.user_choices  # prints 1
print fb.user_choices.EMP_CHOICES 
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-views

44
推荐指数
1
解决办法
2万
查看次数

为什么选择字段在Django queryset中显示键而不是值?

我的models.py中有一个Choice字段

models.py

STATUS = (
    ('closed_issue', 'Closed Issue'),
    ('open_ssue', 'Open Issue'),
    ('pending', 'Pending'),
)

class Issue(models.Model):
    name = models.CharField(max_length=45)
    status = models.CharField(max_length=50, choices=STATUS)
Run Code Online (Sandbox Code Playgroud)

views.py

def Issues(resuest):
    issues = Issue.objects.all()
Run Code Online (Sandbox Code Playgroud)

模板

{% for issue in issues %}
     {{ issue.status }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

输出

已发布问题

它显示选择字段的键而不是值

我希望这些值显示在模板中。有没有一种方法来获取值而不是键?

谢谢你的帮助。

python django choicefield

1
推荐指数
1
解决办法
999
查看次数