Django 2.0, как отображать различные представления (только для чтения и т. Д.) На основе разрешения пользователя - PullRequest
0 голосов
/ 10 октября 2018

Привет. Моя цель - показать одну и ту же таблицу, но разные пользователи имеют разные поля, как «только для чтения», на основании своего разрешения пользователя.Я создал учетную запись пользователя из модуля «Пользователь», где я назначил разрешение отдельному пользователю, чтобы я мог использовать тег шаблона {{perms.app.readonly}} в html или PermissionRequiredMixin в моем базовом представлении класса (updateview).Вот HTML

  {% for my_divider in form %}
                <tr>
                  <td class="col-form-label col-form-label-md">{{ my_divider.label }}</td>
                  <td>{{ my_divider }}</td>
                </tr>
            {% endfor %}

Если я просто использую разрешение шаблона и делаю {{my_divider.readonly}}.Поле ввода полностью исчезло, а это не то, что я хочу.Я добавил readrly attr в класс формы, как показано ниже:

class IssueInput(forms.ModelForm):
class Meta:
    model = TrackHeader
    fields = '__all__'
    widgets = {'google_url': forms.TextInput(attrs={'class': 'FlexField', 'readonly':'readonly'})}

Это именно то, что мне нужно, когда пользователь может видеть содержимое поля, но не может его редактировать.Но я не могу понять, как заставить это работать с PermissionRequiredMixin, что определенный пользователь с разрешением сможет редактировать, а другие могут только читать.Нужно ли создавать дополнительный вид для связи с различными froms.py?Но опять же, urls.py указывает, какое представление в views.py использовать.так, где входит условие разрешения пользователя?Я открыт для ввода условия разрешения в любом месте (HTML, модели, формы, представления), пока оно работает.Спасибо

...