FileField and ArrayField not generated with random data when default=None or default=list
legshort opened this issue · 1 comments
legshort commented
Describe the issue
Generating random data is not working below the condition.
ArrayField with default=list
FileField with default=None
To Reproduce
class A(models.Model):
career = ArrayField(models.CharField(max_length=30), default=list)
main_image = models.ImageField(blank=True, null=True, default=None)
a = baker.make(A, _fill_optional=True, _create_files=True)
print(a.career, a.main_image)
[], None
Expected behavior
ArrayField and FileField should be filled with random data.
Versions
- Python: 3.10.3
- Django: 4.1.2
- Model Bakery: 1.8.0
kiranrokkam09 commented
hi @legshort we can use below function and solve the above issue.
def generate_random_a():
return A(
career=[fake.word() for _ in range(3)], # Generate a list of 3 random words
main_image=baker.make('PILImage') # Generate a random image
)
a = baker.make(A, _fill_optional=True, _model_instance_generator=generate_random_a)
if you like the solution please assign me the issue.