أنا جديد إلى حد ما على جانغو قادمًا من خلفية Laravel. أود تعديل قيمة حقل في كل مرة أستعلم عنها. على سبيل المثال ، في كل مرة تقوم فيها بالاستعلام عن الاسم الأول @ المستخدم ، فإنك تُعيد الاسم الأول الكبير يُعرف هذا في Laravel بـ Accessors ولكن بشكل ثانوي يمتلك Accessors معنى مختلفًا في Django. بالنسبة لحالتي ، لدي جدول قيم مفتاح يسمى Meta
أين ال value
يمكن أن يكون الحقل من أي نوع:
class Meta(models.Model):
key = models.CharField(max_length=30)
value = models.TextField()
model = models.ForeignKey('Model', on_delete=models.CASCADE)
وعند الحصول على القيمة Meta.objects.get(key='foo')
، وأود أن العودة ast.literal_eval(value)
لتحويل تعبير السلسلة إلى النوع المناسب. قمت ببعض البحث ووجدت ما يلي فقط:
- قم بإنشاء حقل مخصص.
- استعمال
get_foo_display(self)
ولكن هذا يعمل فقط لـ ChoiceField بقدر ما فهمت.
ما هو الخيار الأفضل لتطبيق هذه الوظيفة في كل مرة أستعلم فيها value
تصفية حسب key