Сейчас я работаю с одним отображением URL. Допустим, у меня есть три класса, компания, пользователь и магазин, и моя цель состоит в том, чтобы их URL были в одной иерархии. Поскольку они имеют одинаковую иерархию в URL, я должен создать класс url_mapping, чтобы убедиться, что нет повторяющегося имени. Позвольте мне дать более конкретную проблему, которая у меня есть.
Class Company(models.Model):
company_name = models.CharField(max_length=30)
url_mapping = models.OneToOneField(URL_mapping)
Class User(models.Model):
user_name = models.CharField(max_length=30)
url_mapping = models.OneToOneField(URL_mapping)
Class store(models.Model):
store_name = models.CharField(max_length=30)
url_mapping = models.OneToOneField(URL_mapping)
Class URL_mapping(models.Model):
url = models.CharField(max_length=30)
Теперь, когда посетитель получит доступ к моему сайту с определенным URL-адресом, я сопоставлю URL-адрес в классе URL_mapping, а затем выполню обратный поиск и выясню, какой тип URL существует между компанией, пользователем и хранилищем.
Поскольку у пользователя, магазина и компании разные функции просмотра, возможно ли, что мы сможем быстро вернуться к соответствующей функции просмотра, используя обратный поиск? Или я должен добавить еще одно поле в URL_mapping, сообщающее, что это тип URL?
Пример:
http://www.example.com/levis -> will handle by brand_views
http://www.example.com/david -> will handle by user_views
http://www.example.com/mancy -> will handle by store_views
В базе данных у нас будет
url_mapping
id:1, name:levis
id:2, name:david
id:3, name:mancy
user
id:1, name:david, url_mapping:2
brand
id:1, name:levis, url_mapping:1
store
id:1, name: mancy, url_mapping:3
Где url_mapping - это oneToOneField.
Не знаю, как быстро отвести взгляд от класса url_mapping.
Спасибо.