From cadb4a09bfa9457171f03848dd054c987fda3322 Mon Sep 17 00:00:00 2001 From: luxagraf Date: Fri, 14 Jul 2023 15:39:12 -0500 Subject: posts: added a filter by username for admin and in forms.py --- app/posts/admin.py | 9 ++++++++- app/posts/forms.py | 11 +++++++++++ app/posts/models.py | 17 +++++++++++++++-- 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 app/posts/forms.py (limited to 'app') diff --git a/app/posts/admin.py b/app/posts/admin.py index a4e29b8..abe5a5c 100644 --- a/app/posts/admin.py +++ b/app/posts/admin.py @@ -3,6 +3,7 @@ from django.contrib import admin from .models import Post, Note from utils.widgets import AdminImageWidget, LGEntryForm +from django.contrib.auth.models import User from django.contrib.admin import SimpleListFilter @@ -22,7 +23,13 @@ class PostAdmin(admin.ModelAdmin): @admin.register(Note) class NoteAdmin(admin.ModelAdmin): - form = LGEntryForm + def get_form(self, request, obj=None, change=False, **kwargs): + form = super().get_form(request, obj=obj, change=change, **kwargs) + form.base_fields['post'].queryset = Post.objects.filter( + user=request.user + ) + return form + list_display = ('date_created', 'title', 'post') search_fields = ['title'] list_filter = ['date_created'] diff --git a/app/posts/forms.py b/app/posts/forms.py new file mode 100644 index 0000000..89d350a --- /dev/null +++ b/app/posts/forms.py @@ -0,0 +1,11 @@ +from django.forms import ModelForm + +class CreateForm(forms.ModelForm): + + def __init__(self,*args,**kwargs): + user = kwargs.pop('user') + super(CreateForm,self).__init__(*args,**kwargs) + self.fields['post'].queryset = Post.objects.filter(user=user) + + class Meta: + model = Note diff --git a/app/posts/models.py b/app/posts/models.py index 1f909f7..91420e1 100644 --- a/app/posts/models.py +++ b/app/posts/models.py @@ -1,7 +1,7 @@ from django.db import models from django.utils.html import format_html, format_html_join from django.utils import timezone -from django.contrib.auth.models import User +import settings from products.models import ProductLink @@ -41,7 +41,7 @@ class TemplateType(models.IntegerChoices): class Post(models.Model): # an entry in a feed - user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) + user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL) title = models.CharField(max_length=512, blank=True, null=True) body = models.TextField(blank=True, null=True) url = models.CharField(max_length=512, blank=True, null=True) @@ -142,4 +142,17 @@ with open(path) as f: update_frequency = int(row[10]*30), ) + + +user = User.objects.get(username="luxagraf") + +user + + +for post in Post.objects.all(): + if post.author == "Scott Gilbertson": + post.user = user + post.save() + + ''' -- cgit v1.2.3-70-g09d2