检查请求的用户是不是是 django 中的所有者
Posted
技术标签:
【中文标题】检查请求的用户是不是是 django 中的所有者【英文标题】:Check if requested user is owner in django检查请求的用户是否是 django 中的所有者 【发布时间】:2016-08-24 02:51:42 【问题描述】:我开发了一个关于存储酒店信息的应用程序。我也想要一个编辑和删除功能,但编辑按钮应该只对注册酒店的用户可见,而不是对所有经过身份验证的用户可见。如果请求的用户是通过 javascript 参数注册酒店的用户,我想通过。我该如何检查?
hotel_detail.html
<script type="text/javascript">
var data =
pk: instance.pk ,
isUserAuthenticated:% if request.user.is_authenticated %true% else %false% endif %,
user:'request.user.username'
console.log('owner is', data.user);
console.log(data);
$(function()
app.showRoomDetail("hotelDetail",data);
);
</script>
观看次数
def hotel_detail(request, pk):
instance = get_object_or_404(Hotel, pk=pk)
context =
'pk':instance.pk,
'instance':instance
return render(request,'rentals/hotel_detail.html',context)
模型
class Hotel(models.Model):
ownerName = models.CharField(_("Owner's Name"),max_length=255, blank=True,null=True,
help_text=_("Owner's Full Name"))
email = models.CharField(max_length=120,blank=True,null=True)
phoneNumber = models.PositiveIntegerField(blank=False,null=True,
help_text=_("Phone number of contact person"))
hotelName = models.CharField(_("Hotel Name"), max_length=255, blank=False,null=True)
slug = models.SlugField(unique=True,blank=True,null=True)
summary = models.TextField(max_length=500, blank=True,null=True,help_text=_("Description of the Hotel"))
location = models.CharField(_("location"),max_length=10,null=True)
room = models.PositiveIntegerField(_("No of Rooms"), blank=False, null=True,
help_text=_("Number of bedrooms available"))
price = models.PositiveIntegerField(blank=False,null=True,
help_text=_("Price per room"))
【问题讨论】:
老兄,酒店是什么,用户如何注册酒店?您没有分享有关您的计划基础架构的任何信息,并且仍然希望人们帮助您? 您应该可以使用% if request.user == hotel.user %
行中的某些内容,但请务必发布您的Hotel
模型。
我做了 hotel.user 来查看我是否得到了一些东西,但我得到了空值。
% if request.user == rent.user %true% else %false% endif % 只给我 false 。
【参考方案1】:
你可以做的是在你的models.py中添加用户字段或者说hotelOwner
hotelOwner = models.ForeignKey(User) # note you need to import user model
现在在 javascript 中的数据对象中,您应该执行以下操作
user:% if request.user == instance.renter %true% else %false% endif %
【讨论】:
以上是关于检查请求的用户是不是是 django 中的所有者的主要内容,如果未能解决你的问题,请参考以下文章