在用户对象(Django)中定义用户名的默认url
我正在尝试为配置文件信息创建一个模型。我想用该用户的用户名在default_url中设置一个默认值。我怎么能这样做在用户对象(Django)中定义用户名的默认url,django,Django,我正在尝试为配置文件信息创建一个模型。我想用该用户的用户名在default_url中设置一个默认值。我怎么能这样做 class UserProfile(models.Model): user = models.OneToOneField('auth.User') default_url = 'https://' + 'get_user_name_here' + '.' + settings.NETWORK_DOMAIN site_url = models.URLField
class UserProfile(models.Model):
user = models.OneToOneField('auth.User')
default_url = 'https://' + 'get_user_name_here' + '.' + settings.NETWORK_DOMAIN
site_url = models.URLField(
default=default_url,
verbose_name='Site URL',
)
您可以编写一个create方法,如django文档()中所述 然后,要创建UserProfile,只需调用您的方法:
user_profile = UserProfile.create("a_username", etc., ...)
您已经可以通过
OneToOneField
访问User
对象,那么为什么要从那里获取username
,并将default\u url
改为属性呢
class UserProfile(models.Model):
user = models.OneToOneField('auth.User')
site_url = models.URLField(
default=default_url,
verbose_name='Site URL',
)
@property
def default_url(self):
return 'https://{}.{}'.format(self.user.username, settings.NETWORK_DOMAIN)
然后您可以访问url,如下所示:
profile = UserProfile.objects.get(user_id=1)
default_url = profile.default_url
如何在我的UserProfile类中访问它?与模型上的任何其他变量一样
self.default\u url
profile = UserProfile.objects.get(user_id=1)
default_url = profile.default_url