Dies ist die Lösung kam ich in meinem models.py:Überprüfen Sie, ob Modellfeld in Django existiert
from django.db import models
@classmethod
def model_field_exists(cls, field):
try:
cls._meta.get_field(field)
return True
except models.FieldDoesNotExist:
return False
models.Model.field_exists = model_field_exists
Und verwenden Sie es mögen:
Post.field_exists('title') # > True or False
Das Problem mit Fremdschlüssel kommt, mein Beitrag Modell zu einer Kategorie gehört, diese Überprüfung funktioniert:
Post.field_exists('category') # > True
Aber dies nicht:
Post.field_exists('category_id') # > False
Dies ist der tatsächliche Feldname in db und ich muss es so überprüfen. Wie kann ich es im Django machen?
Sollten Sie in diesem Fall das Kategoriemodell selbst prüfen? –
Was meinst du? Ich muss überprüfen, ob "category_id" ein gültiger Feldname für das Modell "Post" ist. – lucaswxp
Wenn 'category' ein Fremdschlüssel ist und' id' zu 'category' gehört, dann hat' Post' dieses Feld nicht, also warum würdest du 'Category.field_exists ('id') nicht aufrufen' ' –