mirror of
https://github.com/SectorLabs/django-localized-fields.git
synced 2025-10-21 15:18:58 +03:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d14859a45b | ||
|
cb7fda5abc | ||
|
9000635f1f | ||
|
dabeb3b79f | ||
|
0b4bb7295e | ||
|
2b34b6751e | ||
|
32696f4e1e |
@@ -1,3 +1,4 @@
|
||||
import json
|
||||
import datetime
|
||||
import posixpath
|
||||
|
||||
@@ -149,3 +150,11 @@ class LocalizedFileField(LocalizedField):
|
||||
defaults['required'] = False
|
||||
defaults.update(kwargs)
|
||||
return super().formfield(**defaults)
|
||||
|
||||
def value_to_string(self, obj):
|
||||
value = self.value_from_object(obj)
|
||||
if isinstance(value, LocalizedFileValue):
|
||||
return json.dumps({k: v.name for k, v
|
||||
in value.__dict__.items()})
|
||||
else:
|
||||
return super().value_to_string(obj)
|
||||
|
4
setup.py
4
setup.py
@@ -2,12 +2,12 @@ import os
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
|
||||
with open(os.path.join(os.path.dirname(__file__), 'README.rst'), encoding='utf-8') as readme:
|
||||
README = readme.read()
|
||||
|
||||
setup(
|
||||
name='django-localized-fields',
|
||||
version='4.3',
|
||||
version='4.4',
|
||||
packages=find_packages(exclude=['tests']),
|
||||
include_package_data=True,
|
||||
license='MIT License',
|
||||
|
@@ -2,6 +2,7 @@ import os
|
||||
import shutil
|
||||
import tempfile as sys_tempfile
|
||||
import pickle
|
||||
import json
|
||||
|
||||
from django import forms
|
||||
from django.test import TestCase, override_settings
|
||||
@@ -118,6 +119,20 @@ class LocalizedFileFieldTestCase(TestCase):
|
||||
filename = field.generate_filename(instance, 'test', 'en')
|
||||
assert filename == 'en_test'
|
||||
|
||||
@classmethod
|
||||
@override_settings(LANGUAGES=(('en', 'English'),))
|
||||
def test_value_to_string(cls):
|
||||
"""Tests whether the :see:LocalizedFileField
|
||||
class's :see:value_to_string function works properly."""
|
||||
|
||||
temp_file = File(tempfile.NamedTemporaryFile())
|
||||
instance = cls.FileFieldModel()
|
||||
field = cls.FileFieldModel._meta.get_field('file')
|
||||
field.upload_to = ''
|
||||
instance.file.en.save('testfilename', temp_file)
|
||||
expected_value_to_string = json.dumps({'en': 'testfilename'})
|
||||
assert field.value_to_string(instance) == expected_value_to_string
|
||||
|
||||
@staticmethod
|
||||
def test_get_prep_value():
|
||||
"""Tests whether the :see:get_prep_value function returns correctly
|
||||
|
@@ -81,6 +81,14 @@ class LocalizedSlugFieldTestCase(TestCase):
|
||||
assert old_slug_en == obj.slug.en
|
||||
assert old_slug_nl != obj.slug.nl
|
||||
|
||||
@classmethod
|
||||
def test_unique_slug_update(cls):
|
||||
obj = cls.Model.objects.create(title={settings.LANGUAGE_CODE: 'mytitle'})
|
||||
assert obj.slug.get() == 'mytitle'
|
||||
obj.title.set(settings.LANGUAGE_CODE, 'othertitle')
|
||||
obj.save()
|
||||
assert obj.slug.get() == 'othertitle'
|
||||
|
||||
@classmethod
|
||||
def test_unique_slug_unique_max_retries(cls):
|
||||
"""Tests whether the unique slug implementation doesn't
|
||||
|
Reference in New Issue
Block a user