2016-04-29 3 views
-4

У меня есть приложение, которое хранит информацию о гостинице. Мне нужна функция редактирования и удаления, но кнопка редактирования должна быть видна только тому пользователю, который зарегистрировал отель не для всего аутентифицированного пользователя. Я хочу передать, если запрашиваемый пользователь - тот, кто зарегистрировал отель через аргумент javascript. Как я могу это проверить?Проверьте, если запрашиваемый пользователь является владельцем django

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")) 
+3

Чувак, что отель, как это зарегистрировать пользователя в отель? Вы не делитесь какой-либо информацией о инфраструктуре своей программы и все еще ожидаете, что люди помогут вам? – ozgur

+1

Вы должны быть в состоянии использовать что-то в строках '{% if request.user == hotel.user%}', но, конечно, опубликуйте модель 'Hotel'. – Selcuk

+0

Я сделал {{hotel.user}}, чтобы узнать, есть ли что-то, но я получаю пустое значение. – milan

ответ

0

Ну, что вы можете сделать, это дд поле пользователя или сказать hotelOwner в вашем models.py как

hotelOwner = models.ForeignKey(User) # note you need to import user model 

теперь в вашем объекте данных внутри Javascript вы должны сделать следующее

user:{% if request.user == instance.renter %}true{% else %}false{% endif %} 
+0

Спасибо, сработало. :) – milan

Смежные вопросы