I suggest Users can do any tasks (ex. model fields validation) through the
parameters like {{{clean_check=True}}} when they use bulk_create and
bulk_update method
I suggest that through the parameters bulk_create, bulk_update method, and
clean_check, when the user wants, the clean function on the object set can
be executed so that the user can perform the desired operation
By implementing this way, users can insert objects only passed by
{{{clean()}}} method that return boolean type
{{{
def bulk_create(self, objs, clean_check=None, batch_size=None,
ignore_conflicts=False):
~~~
if clean_check:
objs = [obj for obj in objs if obj.clean()]
~~~
}}}
By implementing this way, validation errors in clean can prevent the
insertion of object sets containing invalid objects.
{{{
def bulk_create(self, objs, clean_check=None, batch_size=None,
ignore_conflicts=False):
~~~
for obj in objs:
obj.clean()
~~~
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/31384>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Old description:
> We have to check validation of {{{objects set}}} that you want to insert
> when trying bulk_create
>
> I suggest Users can do any tasks (ex. model fields validation) through
> the parameters like {{{clean_check=True}}} when they use bulk_create and
> bulk_update method
>
> I suggest that through the parameters bulk_create, bulk_update method,
> and clean_check, when the user wants, the clean function on the object
> set can be executed so that the user can perform the desired operation
> By implementing this way, users can insert objects only passed by
> {{{clean()}}} method that return boolean type
> {{{
> def bulk_create(self, objs, clean_check=None, batch_size=None,
> ignore_conflicts=False):
> ~~~
> if clean_check:
> objs = [obj for obj in objs if obj.clean()]
> ~~~
> }}}
>
> By implementing this way, validation errors in clean can prevent the
> insertion of object sets containing invalid objects.
> {{{
> def bulk_create(self, objs, clean_check=None, batch_size=None,
> ignore_conflicts=False):
> ~~~
> for obj in objs:
> obj.clean()
> ~~~
> }}}
New description:
--
--
Ticket URL: <https://code.djangoproject.com/ticket/31384#comment:1>
* status: new => closed
* resolution: => wontfix
Comment:
Model validation and persistence are separated concerns.
For example `Model.save()` doesn't invoke `.clean()` so I don't think
`bulk_create` should differ from that.
--
Ticket URL: <https://code.djangoproject.com/ticket/31384#comment:2>