Ошибка RelatedObjectDoesntExist при попытке получить текущее имя пользователя через модель администратора - PullRequest
0 голосов
/ 06 мая 2020

Это моя модель:

def get_form_path(instance,filename):  
    upload_dir=os.path.join('uploaded',instance.hostname,instance.Class)
    if not os.path.exists(upload_dir):
        os.makedirs(upload_dir)
    return os.path.join(upload_dir,filename)

class Book (models.Model):

    Name= models.CharField(max_length=100)
    Class= models.CharField(max_length=100)
    Content =models.FileField(upload_to=get_form_path)
    hostname=models.ForeignKey(settings.AUTH_USER_MODEL,blank=True,on_delete=models.CASCADE)  
    def __str__(self):
            return self.Name
    def delete(self, *args, **kwargs):
            self.Content.delete()
            super().delete(*args, **kwargs)

This is form.py

class BookForm(forms.ModelForm):
class Meta:
    model=Book
    exclude=('hostname',)
    fields=('Name','Class','Content')
class BookAdmin(admin.ModelAdmin):
    exclude=('Name','Class','Content',)
    form=BookForm

Это my admin.py:

class BookAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
    if db_field.name == 'hostname':
        kwargs['queryset'] = get_user_model().objects.filter(username=request.user.username)
    return super(BookAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

def get_readonly_fields(self, request, obj=None):
    if obj is not None:
        return self.readonly_fields + ('hostname',)
    return self.readonly_fields

def add_view(self, request, form_url="", extra_context=None):
    data = request.GET.copy()
    data['hostname'] = request.user
    request.GET = data
    return super(NotesAdmin, self).add_view(request, form_url="", extra_context=extra_context)
admin.site.register(Book, BookAdmin)

Я не понимаю, где я ошибаюсь? полная строка ошибки: "upload.models.Book.hostnamee.RelatedObjectDoesnotExist: У книги нет имени хоста, пожалуйста, помогите мне пройти через это ... Спасибо заранее

"
...