Showing
9 changed files
with
77 additions
and
16 deletions
... | @@ -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 | ... | ... |
dcloud/website/auth_views.py
0 → 100644
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 '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}) | ... | ... |
-
Please register or login to post a comment