신은섭(Shin Eun Seop)

add login, register views

kairos03/2018-1-d.cloud/#6
...@@ -5,13 +5,13 @@ from django.db import models ...@@ -5,13 +5,13 @@ from django.db import models
5 class File(models.Model): 5 class File(models.Model):
6 created = models.DateTimeField(auto_now_add=True) 6 created = models.DateTimeField(auto_now_add=True)
7 modified = models.DateTimeField(auto_now=True) 7 modified = models.DateTimeField(auto_now=True)
8 - file_name = models.CharField(max_length=100) 8 + title = models.CharField(max_length=100)
9 # file_name = models.CharField(max_length=100, primary_key=True) 9 # file_name = models.CharField(max_length=100, primary_key=True)
10 object_key = models.CharField(max_length=1025) 10 object_key = models.CharField(max_length=1025)
11 size = models.IntegerField() 11 size = models.IntegerField()
12 # owner = models.ForeignKey('auth.User', related_name='snippets', on_delete=models.CASCADE) 12 # owner = models.ForeignKey('auth.User', related_name='snippets', on_delete=models.CASCADE)
13 13
14 class Meta: 14 class Meta:
15 - ordering = ('file_name',) 15 + ordering = ('title',)
16 16
17 17
......
1 +from django.contrib.auth import login, authenticate
2 +from django.contrib.auth.forms import UserCreationForm
3 +from django.shortcuts import render, redirect
4 +
5 +def signup(request):
6 + if request.method == 'POST':
7 + form = UserCreationForm(request.POST)
8 + if form.is_valid():
9 + form.save()
10 + username = form.cleaned_data.get('username')
11 + raw_password = form.cleaned_data.get('password1')
12 + user = authenticate(username=username, password=raw_password)
13 + login(request, user)
14 + return redirect('/')
15 + else:
16 + form = UserCreationForm()
17 + return render(request, 'registration/signup.html', {'form': form})
1 -{% extends "base_generic.html" %}
2 -
3 -{% block content %}
4 -<p>Logged out!</p>
5 -
6 -<a href="{% url 'login'%}">Click here to login again.</a>
7 -{% endblock %}
...\ No newline at end of file ...\ No newline at end of file
1 -{% extends "website/base.html" %} 1 +{% extends "website/baseline.html" %}
2 2
3 {% block content %} 3 {% block content %}
4 {% if form.errors %} 4 {% if form.errors %}
......
1 +{% extends 'website/baseline.html' %}
2 +
3 +{% block content %}
4 + <h2>Sign up</h2>
5 + <form method="post">
6 + {% csrf_token %}
7 + {% for field in form %}
8 + <p>
9 + {{ field.label_tag }}<br>
10 + {{ field }}
11 + {% if field.help_text %}
12 + <small style="color: grey">{% autoescape off %}{{ field.help_text }}{% endautoescape %}</small>
13 + {% endif %}
14 + {% for error in field.errors %}
15 + <p style="color: red">{{ error }}</p>
16 + {% endfor %}
17 + </p>
18 + {% endfor %}
19 + <button type="submit">Sign up</button>
20 + </form>
21 +{% endblock %}
...\ No newline at end of file ...\ No newline at end of file
1 +<html>
2 + <header>
3 + <title>D.cloud</title>
4 + </header>
5 + <body>
6 + <div class="page-header">
7 + {% if user.is_authenticated %}
8 + <p class="top-menu">Hello {{ user.username }} <small>(<a href="{% url 'logout' %}">Log out</a>)</small></p>
9 + {% else %}
10 + <a href="{% url 'login' %}" class="top-menu"><span class="glyphicon glyphicon-lock"></span></a>
11 + {% endif %}
12 + <h1><a href="/">D.cloud</a></h1>
13 + </div>
14 + <div class="content">
15 + {% block content %}
16 + {% endblock %}
17 + </div>
18 + <div class="page-footer">
19 +
20 + </div>
21 + </body>
22 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 -{{files}}
...\ No newline at end of file ...\ No newline at end of file
1 +{% extends 'website/baseline.html' %}
2 +
3 +{% block content %}
4 + {% for file in files %}
5 + <h1>{{file.title}}</h1>
6 + <p>{{file.object_key}}</p>
7 + {% endfor %}
8 +{% endblock %}
...\ No newline at end of file ...\ No newline at end of file
......
1 from django.conf.urls import url 1 from django.conf.urls import url
2 -from website import views 2 +from website import views, auth_views
3 3
4 urlpatterns = [ 4 urlpatterns = [
5 # blog 5 # blog
...@@ -11,4 +11,5 @@ urlpatterns = [ ...@@ -11,4 +11,5 @@ urlpatterns = [
11 url(r'^post/(?P<pk>\d+)/publish/$', views.post_publish, name='post_publish'), 11 url(r'^post/(?P<pk>\d+)/publish/$', views.post_publish, name='post_publish'),
12 12
13 url(r'^files/', views.file_list, name='file_list'), 13 url(r'^files/', views.file_list, name='file_list'),
14 + url(r'^signup/$', auth_views.signup, name='signup'),
14 ] 15 ]
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -5,16 +5,16 @@ from website.models import Post ...@@ -5,16 +5,16 @@ from website.models import Post
5 from restful.models import File 5 from restful.models import File
6 from website.forms import PostForm 6 from website.forms import PostForm
7 7
8 +@login_required
9 +def file_list(request):
10 + files = File.objects.all()
11 + return render(request, 'website/file_list.html', {'files': files})
8 12
9 13
10 def post_list(request): 14 def post_list(request):
11 posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') 15 posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
12 return render(request, 'website/post_list.html', {'posts':posts}) 16 return render(request, 'website/post_list.html', {'posts':posts})
13 17
14 -def file_list(request):
15 - files = File.objects.all()
16 - return render(request, 'website/file_list.html', {'files': files})
17 -
18 def post_detail(request, pk): 18 def post_detail(request, pk):
19 post = get_object_or_404(Post, pk=pk) 19 post = get_object_or_404(Post, pk=pk)
20 return render(request, 'website/post_detail.html', {'post': post}) 20 return render(request, 'website/post_detail.html', {'post': post})
......