У меня есть модель
class PortalUser(AbstractBaseUser, PermissionsMixin): pass #some fields
class PortalUserProducts(models.Model): portal_user_product_owner = models.ForeignKey(PortalUser) #other_fields....
есть форма:
class PortalUserProductsForm(forms.ModelForm): class Meta: model = PortalUserProducts fields = '__all__' exclude = [ 'portal_user_product_owner', ]
И есть такая вьюха:
class AddPortalUserProducts(CreateView): form_class = PortalUserProductsForm template_name = 'addproduct.html' success_url = '/profile/' '''# Disabled method def get_form_kwargs(self): kwargs = {'initial': self.get_initial()} if self.request.method in ('POST', 'PUT'): kwargs.update({ 'portal_user_product_owner': self.request.POST, #'files': self.request.FILES, }) return kwargs''' def get_initial(self): return {'portal_user_product_owner': self.request.user} @method_decorator(login_required) def dispatch(self, *args, **kwargs): return super(AddPortalUserProducts, self).dispatch(*args, **kwargs) def get_object(self, queryset=None): return self.request.user
Если в форме делать exclude поле portal_user_product_owner, как тут и указано выше, то джанга закономерно ругается следующим матом: null value in column “portal_user_product_owner_id” violates not-null constraint
Если же поле не исключать, то появляется CHOICE_FIELD со всеми пользователями на выбор.
Подскажите, как сделать так, чтобы:
1) поле выбора пользователя было не доступно, собственно пользователям, но см. след пункт
2) оно автоматически подставлялось при сохранении данных формы.
??
спасибо