Home > OS >  how to check if a property exists in a foreign key model?
how to check if a property exists in a foreign key model?

Time:12-28

I have a model named Product

class Product(models.Model):
   order = models.ForeignKey(Order, on_delete = models.CASCADE)
   quantity = models.ForeignKey(Quantity, on_delete = models.CASCADE)
   

In both ForeignKey-s I have the same property named 'number'. I want to check if that property exists in Product model or in its ForeignKey-s models.

What I am trying to do is:

hasattr(Product, 'number')

CodePudding user response:

Try this created a generic function:

def model_field_exists(model, field, check_related_fields=False):
      if check_related_fields:
         for field in model._meta.get_fields():
            if field.is_relation and hasattr(field.related_model, field)
               return True

      return hasattr(model, field)


field = "number"
if model_field_exists(Product, field, check_related_fields=True):
   print("{0} field exist.".format(field))
else:
   print("{0} field does not exist.".format(field))
  • Related