Как разрешить администратору поддерживать контент на этой модели - PullRequest
0 голосов
/ 20 марта 2020

Я использую Django / Wagtail

У меня есть форма и я хочу, чтобы администратор мог редактировать заголовки полей и текст справки

models.py

class FoodDiaryItem(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    user_pk = models.SmallIntegerField(null=True, blank=True, default=0,)
    date = models.DateField(null=True, blank=True)
    time = models.TimeField(null=True, blank=True)
    level_of_hunger = models.SmallIntegerField(null=True, blank=True,
                                               default=0,
                                               validators=[
                                                   MaxValueValidator(5),
                                                   MinValueValidator(0)
                                               ])
    ...

food_diary_item. html

<form action="/food-diary/diary-updated/{{ food_diary_item.id }}" method="post">
    {% csrf_token %}
    <table>
        <tr><td class="text-right">Food Diary item for:</td><td>{{ user.username }}</td></tr>
        <tr><td class="text-right">Date:</td><td>{{ food_diary_item_form.date }}</td></tr>
        <tr><td class="text-right">Time:</td><td>{{ food_diary_item_form.time }}</td></tr>
        <tr><td class="text-right">Level of hunger:</td><td>{{ food_diary_item_form.level_of_hunger }}</td></tr>
        <tr><td class="text-right"> </td><td>before eating (rate from 0-5, 0=no hunger, 5=starving)</td></tr>
        ...  

Можно ли как-то реорганизовать модель, чтобы сделать текст администрируемым управляемым?

1 Ответ

0 голосов
/ 20 марта 2020

Если они должны отображаться на странице, вы можете добавить метки переопределения к полям этой страницы.

Если поля формы должны использоваться повторно, но переопределяются глобально или для отдельных сайтов, то Вы можете добавить некоторые настройки Wagtail Site , например

@register_setting
class FoodDiaryFormSettings(BaseSetting):
    level_of_hunger = models.CharField(max_length=255)

Затем в вашем шаблоне обратитесь к ним:

        <tr><td class="text-right">{% firstof settings.app_label.FoodDiaryFormSettings.level_of_hunger "Level of hunger" %}:</td><td>{{ food_diary_item_form.level_of_hunger }}</td></tr>
...