Представьте себе сетку 5х5 (карта), каждое ее поле представляет определенный объект (это может быть монстр, дерево и т. Д.)
Итак, здесь мы имеем:
class Field(Model):
x = y = PositiveIntegerField()
content = ...(?)
Здесь возникает проблема.Вот альтернатива, но я думаю, что этот способ слишком запутан, особенно если у меня много разных идентификаторов контента.
class Field(Model):
x = y = PositiveIntegerField()
content = PositiveIntegerField()
monster_rel = ForeignKey(Monster, null=True, blank=True)
building_rel = ForeignKey(Monster, null=True, blank=True)
nature_obj_rel = ForeignKey(Monster, null=True, blank=True)
и затем в представлении:
f = Field.objects.get(pk=1)
if f.content == 1:
print "Monster %s of level %d" % (f.monster_rel.name, f.monster_rel.level)
elif f.content == 2:
print "This is a %s" % f.building_rel.type
...
Есть лилучшее решение для этого?
РЕДАКТИРОВАТЬ Я хотел бы такие поля, как:
content_id = IntegerField()
content_rel = FieldRelatedToModelByContentId()