我在我的 django 项目中使用了django-image-cropping,我遵循了官方指南,但仍然没有得到想要的结果。这是我的项目文件的片段。
我已经将easy_thumbnails和添加image_cropping到我的INSTALLED_APPS.
设置.py
from easy_thumbnails.conf import Settings as thumbnail_settings
THUMBNAIL_PROCESSORS = (
'image_cropping.thumbnail_processors.crop_corners',
) + thumbnail_settings.THUMBNAIL_PROCESSORS
Run Code Online (Sandbox Code Playgroud)
模型.py
from django.db import models
from image_cropping import ImageRatioField
class UserData(models.Model):
fullname = models.CharField(max_length=255)
user = models.CharField(max_length=70, unique=True, blank=False, null=False)
image = models.ImageField(upload_to=generate_filename,blank=False, null=False)
cropping = ImageRatioField('image', '180x180')
Run Code Online (Sandbox Code Playgroud)
管理文件
from django.contrib import admin
from image_cropping import ImageCroppingMixin
class UserDataModelAdmin(ImageCroppingMixin, admin.ModelAdmin):
# filter_horizontal=['image']
pass
admin.site.register(UserData, UserDataModelAdmin)
Run Code Online (Sandbox Code Playgroud)
根据官方指南,足以在管理面板中看到增强的选择区域,但我不明白。相反,我得到了这个。
没有裁剪选项。
请帮我解决这个问题。
我正在使用 Django REST 框架,我对这件事还很陌生。
我想在我的 JSON 输出中使用 manytomanyfield 和外键字段的字符串表示而不是值。
模型.py
class Movie(models.Model):
"""Movie objects"""
name = models.CharField(max_length=128)
directorName = models.ForeignKey(Director)
genre = models.ManyToManyField(Genre)
Run Code Online (Sandbox Code Playgroud)
序列化程序.py
class MovieSerializer(serializers.ModelSerializer):
"""
Serialiazing all the Movies.
"""
genre = serializers.PrimaryKeyRelatedField(many=True, queryset=Genre.objects.all())
directorName = serializers.PrimaryKeyRelatedField(queryset=Director.objects.all())
owner = serializers.ReadOnlyField(source='owner.username')
class Meta:
model = Movie
fields = ('popularity',"directorName",'genre','imdbScore','name','owner')
Run Code Online (Sandbox Code Playgroud)
JSON 输出
{"popularity":"90.0","directorName":1,"genre":[1,2,3],"imdbScore":"8.9","name":"Titanic"}
Run Code Online (Sandbox Code Playgroud)
而不是directorName 和流派的display_name,我只得到值。
请建议我如何纠正这个问题。
编辑 [已解决] 您需要覆盖 PrimaryKeyRelatedField 的 to_representation() 方法,因为它返回 pk。
我从swift.org为 Ubuntu 15.10安装了 Swift 的开源版本,但我在我的机器上运行 Ubuntu 15.04。现在,当我swift在终端中执行命令时,它会引发以下错误。
swift/usr/bin/repl_swift:加载共享库时出错:libicuuc.so.55:无法打开共享对象文件:没有这样的文件或目录
错误:无法在 REPL 断点处停止进程
我运行以下命令以确保安装了 libicu52。
sudo apt-get install libicu52
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。提前致谢。