Last active
July 6, 2016 19:31
-
-
Save linevych/b75c3cb81237b8dfa0b2f0b86832f7b8 to your computer and use it in GitHub Desktop.
Code review for Dmytro
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""vitruna URL Configuration | |
The `urlpatterns` list routes URLs to views. For more information please see: | |
https://docs.djangoproject.com/en/1.9/topics/http/urls/ | |
Examples: | |
Function views | |
1. Add an import: from my_app import views | |
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') | |
Class-based views | |
1. Add an import: from other_app.views import Home | |
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') | |
Including another URLconf | |
1. Import the include() function: from django.conf.urls import url, include | |
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) | |
""" | |
from django.conf.urls import url | |
from django.contrib import admin | |
from dashboard.views import * | |
urlpatterns = [ | |
url(r'^admin/', admin.site.urls), | |
url(r'^dashboard/', Dashboard.as_view(), name='dashboard'), | |
url(r'^setup/', SetupShop.as_view(), name='setup'), | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Dashboard views | |
--------------- | |
Пиши коменатрі в reStructuredText, потім їх можна буде зібрати Sphinx'ом докупи. | |
(Приклад ReadTheDocs.org) | |
""" | |
from django.http import HttpResponseRedirect | |
from django.views.generic import FormView | |
from django.contrib.auth.mixins import LoginRequiredMixin | |
from django.core.urlresolvers import reverse | |
from core.models import Shop | |
from .forms import ShopForm | |
class SetupShop(FormView, LoginRequiredMixin): | |
""" | |
Set up shop, main view. | |
Description of the view goes here. | |
.... | |
LoginRequiredMixin == @login_required | |
Що означає request.user.role == '1' я ХЗ, в тебе якась кастомна модель User? | |
""" | |
form_class = ShopForm() | |
template_name = 'setup.html' | |
# Хардкодити url дуже погана звичка. | |
# Тобі треба користуватись параметром name в urls.py. | |
# В моєму випадку то: name='dashboard' | |
success_url = reverse('dashboard') | |
login_url = reverse('login') | |
def get(self, request, *args, **kwargs): | |
""" | |
Переписуємо стандартний метод get() з FormView. | |
Можна зробити те саме з post() якщо тобі потрібно так само POST запити обробляти. | |
""" | |
try: | |
have_shop = Shop.objects.get(owner=request.user.pk) | |
if have_shop: | |
return HttpResponseRedirect(self.get_success_url()) | |
except: | |
# конструкція super(class_name).method_name() означає що далі буде виконуватись код методу | |
# з батьківського класу, в нашому випадку він буде ренедрити форму | |
super(SetupShop).get(request, *args, **kwargs) | |
def clean_owner(self): | |
""" | |
Змінюємо значення owner в формі. | |
В FormView можна проводити будь-які операції над даними поля оголосивши метод clean_{{field_name}}. | |
В даному випадку ми змінюємо значення owner. | |
""" | |
owner = self.request.user | |
return owner | |
class Dashboard(FormView): | |
""" | |
На скріні видно не все, тому в точності написати не можу ;) | |
""" | |
pass |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment