Теперь мой код, как:Могу ли я использовать метод класса в views.py?
def use_item(request):
itemname = request.get('value')
if itemname == 'item1':
#do something
if itemname == 'item2':
#do something else
Могу ли я сделать это следующим образом?
views.py
class use_item():
def use_item(self,request):
itemname = request.get('value')
use = getattr(self,itemname) # say itemname is 'item1'
use()
def item1(self,request):
#do something
def item2(self,request):
#do something else
Я попробовал второй метод, но, кажется, что я не делал это правильно. И причина, по которой я хочу это сделать, заключается в том, что я надеюсь сгруппировать методы, которые они будут более организованными.
фактический код
#views.py
class use_item():
def useitem(self,request):
itemname = request.POST.get('value')
use = getattr(self,itemname)
use()
def jelly(self,request,topic_id):
t = topic.objects.get(id=topic_id)
t.top = True
t.time_topped = datetime.datetime.now()
t.save()
#urls.py
url(r'^use/item/(?P<topic_id>\d+)/$', 'use_item.use_item', name='use_item'),
Что такое 'self' в' class use_item (self): '? Возможно, вы захотите повторно посетить способ создания классов Python –
[Представления на основе классов] (https://docs.djangoproject.com/en/1.10/topics/class-based-views/) – wim
Просьба представить ваш ожидаемый результат и что вы получаете (возможно, неправильный вывод или сообщение об ошибке). –