2013-12-08 2 views
0

models.pyDjango1.6 UpdateView, как отобразить поле без обновления его

class Application(models.Model): 
    desc = models.CharField(max_length=40, unique=True, null=False) 
    name = models.CharField(max_length=40, null=False) 
    user = models.ForeignKey(User) 

views.py

class ApplicationUpdate(UpdateView): 
    model = Application 
    template_name = "apps/update.html" 
    fields = ['name', 'desc'] 
    context_object_name = "app" 
    success_url = reverse_lazy('app-list') 

шаблоны

<div class='update-item'> 
     {{form.name.error}} 
     {{form.name.label_tag}} 
     {{form.name}} 
    </div> 
    <div class='update-item'> 
     {{form.desc.value}} 
    </div> 

Здесь я хочу показать DESC поле в шаблоне, но только поле имени POST при его обновлении. Любое решение для этого?

ответ

1

Try один из них:

  1. Набор для чтения атрибутов полей, которые не хотят быть изменены.

  2. Вместо {{form.desc.value}} вы можете отобразить значение поля экземпляра - {{ form.instance.desc }}, рядом удалить desc поле из include атрибута.

+0

yup, it works. Но возможно ли не положить поле desc в элемент ввода? – linbo

+0

@linbo Я не уверен, что вы спрашиваете. Если вы хотите отобразить его как текстовый ввод, просто создайте пользовательский тег ввода и поместите '{{form.instance.desc}}' как значение. Просто не устанавливайте атрибут имени для ввода, поэтому он не будет выбран по запросу. – mariodev

+0

Если запрос не выбрал поле desc, выглядит не работает – linbo