如何创建只有用户可以看到而不是管理员的输入字段?

时间:2018-06-04 06:28:35

标签: python django forms privacy cloud9

目前我正在使用Django创建一个网站。我的网站的目的是将个人信息存储到用户。对于用户隐私和安全问题。我试图让它(管理员)无法看到他们在Text或CharFields中显示的内容,这些内容会显示在他们自己的个人主页上,以便让用户感觉更舒服地将他们的信息放在网站上。我试过加密就像密码一样:

password = forms.CharField(widget=forms.PasswordInput())

但它不会让我或用户向表单添加任何内容。此外,旧字段显示为对用户加密。我希望它的方式是在我的管理页面上看起来加密,但对于用户的页面,它应该是普通文本。所以我的一个问题是如何才能完成这一壮举?或者甚至可能吗?

1 个答案:

答案 0 :(得分:0)

我建议只是从管理页面中排除私人字段。这在Django documentation中有描述,需要在模块中创建一个名为models.py的文件(exclude所在的目录)。在该文件中,您需要创建一个与您的模型同名的类,但使用后缀' Admin',并且在该类下面有一个USE [xxDB] GO declare @currentMonth int = 1, @currentYear int = 2014, @newExpireMonth int =6, @newExpireYear int =2018, @actualDate varchar(30), @fromDate varchar(30), @toDate varchar(30) declare @Sql varchar(8000) begin create table #MytempTab1 ( actualNewDate varchar(30), newUserId int ) insert into #MytempTab1 select (RIGHT( '00' + CAST(ISNULL(ss.ExpiryMonth, '01') as varchar(2)), 2)+'-01'+'-'+RIGHT('0000' + CAST(ISNULL(ss.ExpiryYear, '2014') as varchar(4)), 4)) as actualNewDate, ss.UserId as newUserId from dbo.UserProfile u inner join dbo.webpages_UsersInRoles wur on u.UserId=wur.UserId inner join dbo.SpreedlySubscriber ss on u.UserId=ss.UserId where (wur.RoleId=4) end set @Sql= ' select ss.FirstName as FirstName, ss.LastName as LastName, ss.ExpiryMonth as ExpMonth, ss.ExpiryYear as ExpYear from dbo.UserProfile u inner join dbo.webpages_UsersInRoles wur on u.UserId=wur.UserId inner join dbo.SpreedlySubscriber ss on u.UserId=ss.UserId inner join #MytempTab1 mt on ss.UserId= mt.newUserId inner join dbo.[Order] odr on ss.OrderId=odr.OrderId where (wur.RoleId=4) and ' set @fromDate = RIGHT('00' + CAST(@currentMonth as varchar(2)), 2) +'-01'+'-'+ RIGHT('0000' + CAST(@currentYear as varchar(4)), 4) set @toDate= RIGHT('00' + CAST(@newExpireMonth as varchar(2)), 2) +'-01'+'-'+ RIGHT('0000' + CAST(@newExpireYear as varchar(4)), 4) set @Sql= @Sql+ '(CONVERT(date, mt.actualNewDate, 110) BETWEEN CONVERT(date, '+@fromDate+', 110) AND CONVERT(date, '+@toDate+', 110))' print (@Sql) EXEC(@Sql) drop table #MytempTab1 选项,其中包含字段的名称喜欢隐藏。请参阅文档以了解具体实现。

正如评论中所提到的,存储实际密码的不是一个好习惯。我从问题的背景中假设这是一个不那么敏感但又隐私的数据。