Sfoglia il codice sorgente

Add user-movie relationship, filter movie list by user

Benoît Hubert 7 anni fa
parent
commit
010101e6e0

+ 3 - 0
movies/admin.py

@@ -1,3 +1,6 @@
 from django.contrib import admin
 
 # Register your models here.
+from .models import Movie
+
+admin.site.register(Movie)

+ 21 - 0
movies/migrations/0003_movie_user.py

@@ -0,0 +1,21 @@
+# Generated by Django 2.0.2 on 2018-02-11 01:03
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('movies', '0002_movie_title'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='movie',
+            name='user',
+            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='movies', to=settings.AUTH_USER_MODEL),
+        ),
+    ]

+ 2 - 0
movies/models.py

@@ -1,7 +1,9 @@
 from django.db import models
+from django.contrib.auth.models import User
 
 # Create your models here.
 from django.db import models
 
 class Movie(models.Model):
+    user = models.ForeignKey(User, related_name='movies', on_delete=models.CASCADE, default=1)
     title = models.TextField(default='')

+ 1 - 0
movies/templates/library.html

@@ -2,6 +2,7 @@
   <title>MovieLib</title>
     <body>
       <h1>Your Movie list</h1>
+      <h2>{% if user.email %}Logged-in as: {{ user }}/{{ user.email }}{% else %}Not logged-in{% endif %}</h2>
       <table id="movie-table">
         {% for movie in movies %}
           <tr><td>{{ forloop.counter }}: {{ movie.title }}</td></tr>

+ 2 - 1
movies/views.py

@@ -10,5 +10,6 @@ def home_page(request):
     return render(request, 'home.html', { 'name': 'Guest' })
 
 def view_list(request, username):
-    movies = Movie.objects.all()
+    print(request.user.id if request.user else 'no auth')
+    movies = Movie.objects.all().filter(user_id=request.user.id)
     return render(request, 'library.html', {'movies': movies})