すべてのユーザーが所有者である「ドメイン」を作成できるようにしたいのですが、管理者ユーザーが他のユーザーのために「ドメイン」を作成できるようにしたいと考えています。
これまでのところ、管理者以外のケースに対処するために持っているものは次のとおりです。
# views.py
class DomainCreateView(LoginRequiredMixin, DomainActionMixin, CreateView):
model = Domain
action = "created"
form_class = DomainForm
success_url = 'domains/'
def form_valid(self, form):
form.instance.user = self.request.user
return super(DomainCreateView, self).form_valid(form)
# forms.py
class DomainForm(forms.ModelForm):
class Meta:
model = Domain
fields = ('title', 'url')
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_tag = False
self.helper.layout = Layout(
Field('title', placeholder="title"),
Field('url', placeholder="url"),
)
super(DomainForm, self).__init__(*args, **kwargs)
いくつかの mixin とクリスピー フォームを使用しているため、少し標準的ではないことに注意してください。どちらもこの質問に影響を与えるべきではないと思います。