【发布时间】:2019-03-04 12:44:19
【问题描述】:
我正在构建一个应用程序,管理员可以在其中创建私人网页,他们需要手动添加人员才能访问该页面。
我不想让管理员看到所有用户,所以我想只渲染列表中的 PK。
我的意见.py
class HotelCreateView(LoginRequiredMixin, CreateView):
model = Hotel
form_class = HotelForm
def form_valid(self, form):
form.instance.manager_hotel = self.request.user
return super().form_valid(form)
forms.py
from django.db import models
from django.forms import ModelForm
from .models import Hotel
class ColleagueChoiceField(ModelChoiceField):
def label_from_instance(self, obj):
return obj.get_pk()
class HotelForm(models.Model):
ColleagueModelChoiceField(queryset=Colleague.objects.filter(pk))
【问题讨论】:
-
列表视图在哪里?
-
您的要求不明确
-
@AnjaneyuluBatta 什么不清楚? JPG 我不想对 ListView 进行任何更改,我只希望 HotelCreateView 中的表单呈现 PK 而不是选择字段中的用户名
-
您需要提供更多信息。什么选择领域?什么用户名?是为了
colleague字段吗?请展示酒店模型。 -
@DanielRoseman 我编辑了。选择字段是一个 ManyToManyField,它使用来自 django.contrib.auth.models 的用户。是的,它是给同事领域的
标签: python django django-views django-class-based-views