Python Django-OneToOne油田
现在我正在处理一个url映射。假设我有三个类,company、user和store,我的目标是它们的URL将位于相同的层次结构中。因为它们在url中是相同的层次结构,所以我必须创建一个类url_映射,以确保没有重复的名称。让我给出一个更具体的问题Python Django-OneToOne油田,python,django,url,Python,Django,Url,现在我正在处理一个url映射。假设我有三个类,company、user和store,我的目标是它们的URL将位于相同的层次结构中。因为它们在url中是相同的层次结构,所以我必须创建一个类url_映射,以确保没有重复的名称。让我给出一个更具体的问题 Class Company(models.Model): company_name = models.CharField(max_length=30) url_mapping = models.OneToOneField(URL_
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,然后进行反向查找,查看公司、用户和商店之间的url类型
由于用户、商店和公司具有不同的查看功能,我们是否可以使用反向查找快速直接返回到相应的查看功能?或者我应该在URL_映射中添加另一个字段,说明它是哪种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_映射是oneToOneField
现在不知道如何从url_映射类快速查找
谢谢。我把你的问题理解为“我有一个URL,我想去相应的商店、公司或用户” 你可以使用
URL_mapping.objects.get(url).user
URL_mapping.objects.get(url).store
URL_mapping.objects.get(url).company
很明显,其中2个会给你一个错误,你不知道它映射到哪个
在我看来,对于你真正想要的东西,你真的应该使用
那么,您将能够:
URL_mapping.objects.get(url)
其中将有相应的
用户
、公司
或商店
模型。我理解您的问题是“我有一个URL,我想去相应的商店、公司或用户”
你可以使用
URL_mapping.objects.get(url).user
URL_mapping.objects.get(url).store
URL_mapping.objects.get(url).company
很明显,其中2个会给你一个错误,你不知道它映射到哪个
在我看来,对于你真正想要的东西,你真的应该使用
那么,您将能够:
URL_mapping.objects.get(url)
将具有相应的用户
、公司
或商店
模型
SlugField
,作为它们的标识符GenericForeignKey
关系。在这个辅助模型中,我再次使用SlugField
作为标识符。如果你使用它,你不需要在你的主要模型中使用slug唯一的约束。您的URL\u映射
模型就是这样一种机制。它基本上在模型外部存储三个模型的段塞,如果在URL\u映射中向SlugField
添加UNIQUE
约束,则确保段塞在主模型中是唯一的
SlugField
,作为它们的标识符GenericForeignKey
关系。在这个辅助模型中,我再次使用SlugField
作为标识符。如果你使用它,你不需要在你的主要模型中使用slug唯一的约束。您的URL\u映射
模型就是这样一种机制。它基本上在模型外部存储三个模型的段塞,如果在URL\u映射中向SlugField
添加UNIQUE
约束,则确保段塞在主模型中是唯一的
你能解释一下你所说的url层次结构和同一层次结构中的三个类是什么意思吗?这在我看来很复杂。:)嗨,我现在用一个例子来解释我的问题。谢谢。你能解释一下url层次结构和同一层次结构中的三个类是什么意思吗?这在我看来很复杂。:)嗨,我现在用一个例子来解释我的问题。谢谢