django - AttributeError:“文件”对象没有属性“模型”
问题描述
我有以下设置,其中我的模型类如下所示
from django.db import models
from User.models import UserProfile
class Advertisement(models.Model):
owner = models.ForeignKey(UserProfile, related_name='advertisements', on_delete=models.CASCADE)
title = models.CharField(max_length=500, blank=False, default='')
location = models.CharField(max_length=300, blank=False, default='')
rent = models.IntegerField(blank=False)
status = models.CharField(max_length=100, blank=False)
no_of_bedrooms = models.IntegerField(blank=False)
no_of_bathrooms = models.IntegerField(blank=False)
posted_by = models.CharField(max_length=100, blank=True)
date_ad_posted = models.DateTimeField(null=True, blank=True)
contact = models.CharField(max_length=13, blank=False)
description = models.CharField(max_length=1000, blank=False)
security_deposit = models.IntegerField(default=0, blank=False)
def save(self, *args, **kwargs):
super(Advertisement, self).save(*args, **kwargs)
class File(models.Model):
Ad = models.ForeignKey(Advertisement, related_name='ad-photo', on_delete=models.CASCADE)
file = models.FileField(blank=False, null=False)
remark = models.CharField(max_length=20)
timestamp = models.DateTimeField(auto_now_add=True)
我的序列化程序如下所示
class AdvertisementSerializer(serializers.HyperlinkedModelSerializer):
owner = serializers.ReadOnlyField(source='owner.email')
class Meta:
model = Advertisement
fields = ('id', 'owner', 'title', 'location', 'rent', 'status', 'no_of_bedrooms', 'no_of_bathrooms',
'date_ad_posted', 'posted_by', 'contact', 'description')
kwargs = {
'url': {'view_name': 'advertisement-detail'}
}
class FileSerializer(serializers.ModelSerializer):
class Meta:
model = File
fields = ('Ad', 'file', 'remark', 'timestamp')
我正在通过以下方式在 admin.py 中注册我的模型
from django.contrib import admin
from .models import Advertisement, AdContract, File
class FileInline(admin.TabularInline):
model = File
class PropertyAdmin(admin.ModelAdmin):
inlines = [FileInline, ]
admin.site.register(Advertisement, File)
admin.site.register(AdContract)
我尝试了谷歌搜索后得到的一些解决方案,但错误仍然存在。任何帮助表示赞赏。
解决方案
要一次注册多个模型,您需要将它们作为可迭代传递:
admin.site.register([Advertisement, File])
代替
admin.site.register(Advertisement, File)
推荐阅读
- android - Update and Delete documents from two different collections on single click
- python - Optimizing code for grouping by unique person
- python - Backup gsuite users contacts (with service account)
- react-native - 无法实现 react-native-elements 表单?
- android - 在 Android 上使用 Unity3D 读取 Midi 文件
- python-3.x - Pygame is not installing in macOS
- laravel - Undefined variable: category in edit.blade
- c - C中静态函数的优先级
- activemq - 我们可以根据消息属性或标头对 ActiveMQ 消息进行优先级排序吗?
- r - 如何为 ggplot2 轴中的单个值使用多种颜色?