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 datetime
|
||||||
import posixpath
|
import posixpath
|
||||||
|
|
||||||
@@ -149,3 +150,11 @@ class LocalizedFileField(LocalizedField):
|
|||||||
defaults['required'] = False
|
defaults['required'] = False
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
return super().formfield(**defaults)
|
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
|
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()
|
README = readme.read()
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='django-localized-fields',
|
name='django-localized-fields',
|
||||||
version='4.3',
|
version='4.4',
|
||||||
packages=find_packages(exclude=['tests']),
|
packages=find_packages(exclude=['tests']),
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
license='MIT License',
|
license='MIT License',
|
||||||
|
@@ -2,6 +2,7 @@ import os
|
|||||||
import shutil
|
import shutil
|
||||||
import tempfile as sys_tempfile
|
import tempfile as sys_tempfile
|
||||||
import pickle
|
import pickle
|
||||||
|
import json
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.test import TestCase, override_settings
|
from django.test import TestCase, override_settings
|
||||||
@@ -118,6 +119,20 @@ class LocalizedFileFieldTestCase(TestCase):
|
|||||||
filename = field.generate_filename(instance, 'test', 'en')
|
filename = field.generate_filename(instance, 'test', 'en')
|
||||||
assert filename == 'en_test'
|
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
|
@staticmethod
|
||||||
def test_get_prep_value():
|
def test_get_prep_value():
|
||||||
"""Tests whether the :see:get_prep_value function returns correctly
|
"""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_en == obj.slug.en
|
||||||
assert old_slug_nl != obj.slug.nl
|
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
|
@classmethod
|
||||||
def test_unique_slug_unique_max_retries(cls):
|
def test_unique_slug_unique_max_retries(cls):
|
||||||
"""Tests whether the unique slug implementation doesn't
|
"""Tests whether the unique slug implementation doesn't
|
||||||
|
Reference in New Issue
Block a user