Я хотел бы получить совет от сообщества.
Я недавно начал изучать Django, и у меня возник вопрос относительно структуры приложения.
У меня есть URL http://127.0.0.1:8000/asset/2/, DetailView для моей модели активов, в котором также есть два блока карт, в которых хранятся данные для двух других моделей: Арендатор и Сервис. Проверьте скриншот ниже.
![enter image description here](https://i.stack.imgur.com/UG5KX.png)
Я создаю вышеупомянутый вид из файла asset / views.py . Код как ниже.
class AssetMultipleDetailView(LoginRequiredMixin, UserPassesTestMixin, DetailView):
model = Asset
context_object_name = 'asset'
template_name = 'asset/asset_multiple_detail.html'
def test_func(self):
asset_multiple = self.get_object()
if self.request.user == asset_multiple.owner:
return True
return False
def get_context_data(self, **kwargs):
context = super(AssetMultipleDetailView, self).get_context_data(**kwargs)
context['tenants'] = Tenant.objects.filter(asset=context['asset']).order_by('created')
context['services'] = Service.objects.filter(asset=context['asset']).order_by('created')
return context
Когда вы нажимаете кнопку Добавить нового арендатора, я использую приведенный ниже URL в tenant / urls.py
path('new/asset/<int:pk>/', TenantAssetCreateView.as_view(), name='tenant_asset_create'),
Этот URL-адрес создает CreateView for Tenant. Я использую первичный ключ актива в URL, чтобы загрузить только правильный актив в поле выбора актива. Пожалуйста, смотрите изображение ниже.
![enter image description here](https://i.stack.imgur.com/D4LyQ.png)
Все работает хорошо.
Я хотел бы знать, является ли это лучшим способом для достижения этой цели? Будет ли это легко обслуживаться, так как в приложении есть больше представлений, похожих на это.
Любой совет очень ценится. Заранее спасибо.