2015-10-20 61 views
0

我有一些问题 这个空场是我的代码:Python | Django |从形式

views.py:

def cv_detail(request, pk): 
    cv = get_object_or_404(Cv, pk=pk) 
    return render(request, 'cv_detail.html', {'cv': cv}) 

cv_detail.html:

{% block profile %} 
<a class="btn-lg btn-default" href="{% url "edit_cv" pk=cv.pk %}"><span class="glyphicon glyphicon-pencil"> Edit</span></a> 
<p></p><br> 
<div class="jumbotron"> 

    {% if not cv.specialization.is_empty %} 
     <p>Specialization: {{cv.specialization}}</p> 
    {% endif %} 
</div> 
{% endblock %} 

forms.py:

class CvForm(forms.ModelForm): 

    class Meta: 
     model = Cv 
     fields = ('name', 'specialization',) 

models.py:

class Cv(models.Model): 
    author = models.ForeignKey('auth.User') 
    name = models.CharField(max_length=25, null = True) 
    specialization = models.CharField(max_length=30, blank=True, null=True) 

    def zapisz(self): 
     self.save() 

    def __str__(self): 
     return self.surname 

而问题是:我如何检查是什么字段的cv模型是空的? 我在“专业化”中没有任何东西 - 不是我的补充,所以不应该显示,但它是,如:“专业化:”。

任何想法如何检查?因为我有什么不工作:/

谢谢!

+1

是否为'blank = True'?这意味着它可以是空白的,所以验证通过。否则,您可以在视图中执行'如果不是cv.specialization'。空字符串和'None'都会评估为“False”。 – Ivan

+0

你是什么意思?我尝试使用“无”,但它不起作用。在我看来,你如何看待你的主张?我有更多的领域,不仅是“专业化”。 – Damian

+0

哦,对不起,这显然是'如果cv.specialization'。另外,我不太明白“在我看来,你如何看待你的主张?”。 – Ivan

回答

0

你可以在你的模板,检查空specialization场:

{% if cv.specialization and cv.specialization.strip %} 
    <p>Specialization: {{cv.specialization}}</p> 
{% endif %} 

.strip检查将确保你不会试图显示仅包含空格的字符串。

+0

.strip?这是什么意思? – Damian

+0

看看我的编辑。 –