2015-02-02 8 views
3

Я новичок в django и имею приложение, которое позволяет администратору создавать опросы, и я пытаюсь найти способ для администратора включать текст внутри формы (при создании опроса), который будут представлять значение поля, которое они ввели ранее в формеDjango - динамический текст в форме администратора

пример: сказать, что администратор хочет ссылаться на имя опроса в описании обследования или внутри вопроса, но не хочет набирать имя и вместо этого ключевое слово, которое относится к полю названия опроса и правильно отображает название опроса в html

models.py:

class Survey(models.Model): 
    name = models.CharField(max_length=200) 
    slug = models.SlugField(max_length=255) 
    description = models.TextField() 
    pub_date = models.DateTimeField(auto_now=False, default=datetime.datetime.now) 
    external_survey_url = models.CharField(max_length=255, blank=True) 
    minutes_allowed = models.FloatField(max_length=10, default=0) 
    is_active = models.BooleanField(default=True) 

admin.py:

class SurveyAdmin(admin.ModelAdmin): 
    save_as = True 
    prepopulated_fields = { "slug": ("name",),} 
    fields = ['name', 'pub_date', 'description', 'external_survey_url', 'minutes_allowed', 'slug'] 
    inlines = [QuestionInline, SurveyImageInLine] 

Я попытался с помощью {{вар | безопасно}}, но нашел, что это относится только к HTML, а не Джанго переменных языка шаблонов в противном случае администратор может просто заполнить {{ var}}, когда они создают объект в admin, надеюсь, что я был достаточно ясным. Заранее спасибо!

ответ

2

решили эту проблему путем простого изменения в моей модели экономии(), совершенно забыл о форматировании строки в Python ...

models.py

def save(self, *args, **kwargs): 
     try: 
      self.description = self.description % self.name 
     except TypeError: 
      pass 
     self.slug = self.name 
     super(Survey, self).save(*args, **kwargs) 

достаточно простой для достижения того, что я хотел, Я объявлю новое поле в модели, чтобы сделать это более расширяемым.

Смежные вопросы