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