У меня есть абстрактный класс Type, и у него есть 3 унаследованных класса Type1 Type2 Type3 70% этих свойств 3 классов одинаковы.
я хочу так;
Tip=get_object_or_404(Type,tournament__slug=tournamentslug,slug=slug,game__slug=gameslug,)
Однако тип является абстрактным классом, я не могу получить объект или фильтр
views.py (сейчас)
def game_detail(request,tournamentslug,slug,gameslug):
tip1=get_object_or_404(Type1, tournament__slug=tournamentslug,slug=slug,game__slug=gameslug,)
tip2=get_object_or_404(Type2,tournament__slug=tournamentslug,slug=slug,game__slug=gameslug,)
tip3=get_object_or_404(Type3,tournament__slug=tournamentslug,slug=slug,game__slug=gameslug,)
да я хочу лайк ; Tip=get_object_or_404(Type,tournament__slug=tournamentslug,slug=slug,game__slug=gameslug,) Однако тип является абстрактным классом, я не могу получить объект или фильтр
Если Type является абстрактным, он не поддерживается какой-либо таблицей, поэтому откуда get_object_or_404(Type,...) будет получать свои значения?





Вы не можете смешивать эти 3 модели, потому что это разные модели и разные таблицы в базе данных. Вам нужно создать свой собственный get_object_or_404 тот, который принимает набор запросов, и ввести туда смешанный набор запросов,
или протестировать все 3 модели по отдельности и поднять 404 самостоятельно, когда ничего не стоит.
Или, если 70% данных в этих классах одинаковы, может быть, вы можете просто сохранить их все, используя одну большую модель? Просто объедините Type1 Type2 Type3 в одну универсальную модель Type. ИМО, это более разумно, чем создавать 3 одинаковые модели с номером внутри названия.
Type1 имеет дополнительные 5 полей Type2 имеет дополнительные 3 поля. Также Type1 xxx=models.ForeignKey(). Следовательно, Type2 xxx=models.ManytoManyField. Я сделал это, так что это не было сложно.
Тем не менее, я подумаю об этом, чтобы слить
Вы можете объединить модели, но проблема в том, что если объединенная модель будет представлять ваши данные так, как это было бы, действительно трудно сказать, ничего не зная об этом. Можно ли извлекать данные из типа 2, когда вы ищете тип 1?
Я сделал абстрактный класс, потому что он был очень сложным. Я скомбинирую и посмотрю, что получится.
Я не понял вопроса. Вы хотите проверить, являются ли турнирный слаг, слаг и геймслаг полями
Type(базового абстрактного класса)!?