Bump.
Any thoughts?

If we decide to change something, we'd better do it before GA, I think.


On Mon, Nov 18, 2019 at 10:07 PM David Davis <davidda...@redhat.com> wrote:

> Without diving into the django code, I'm guessing that the problem is the
> default value for text fields is a blank string. I bet if you set the
> default=None on fields that don't accept null, they would become 'required'
> (although I don't think this concept actually exists in django at the model
> level).
>
> I think Fabricio's solution would work. However, it doesn't 'require'
> fields so much as prevent blank strings from being saved in the database.
> And I think that's what we want?
>
> David
>
>
> On Mon, Nov 18, 2019 at 3:15 PM Fabricio Aguiar <
> fabricio.agu...@redhat.com> wrote:
>
>> the best way that I found so far is this:
>> https://stackoverflow.com/a/56272674/5253051
>> [image: image.png]4
>> <https://stackoverflow.com/a/56272674/5253051>
>>
>> Best regards,
>> Fabricio Aguiar
>> Software Engineer, Pulp Project
>> Red Hat Brazil - Latam <https://www.redhat.com/>
>> +55 11 999652368
>>
>>
>> On Mon, Nov 18, 2019 at 5:09 PM Tatiana Tereshchenko <ttere...@redhat.com>
>> wrote:
>>
>>> I noticed that there is no enforcement at the DB level to require
>>> certain fields to be present on a model.
>>>
>>> I haven't checked all the field types but at least for TextField it's
>>> seems to be true.
>>> Even though `null` is False by default (`blank` as well), I can save a
>>> model instance without most of fields set.
>>>
>>> As an example, for UpdateRecord [0] in RPM plugin, plugin writer can do
>>> UpdateRecord().save() and it will be fine, all the fields are set to empty
>>> string :/ It wouldn't be possible to save it twice but it's due to the
>>> uniqueness constraints.
>>>
>>> In case plugin writer doesn't set properly all the required fields,
>>> bad/corrupted model instances will be silently saved in the DB and plugin
>>> can potentially have data migration issues later.
>>>
>>> Any suggestions how to handle that? Or do I miss anything?
>>>
>>> Tanya
>>>
>>> [0]
>>> https://github.com/pulp/pulp_rpm/blob/master/pulp_rpm/app/models/advisory.py#L77-L93
>>> _______________________________________________
>>> Pulp-dev mailing list
>>> Pulp-dev@redhat.com
>>> https://www.redhat.com/mailman/listinfo/pulp-dev
>>>
>> _______________________________________________
>> Pulp-dev mailing list
>> Pulp-dev@redhat.com
>> https://www.redhat.com/mailman/listinfo/pulp-dev
>>
>
_______________________________________________
Pulp-dev mailing list
Pulp-dev@redhat.com
https://www.redhat.com/mailman/listinfo/pulp-dev

Reply via email to