Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UniqueTogetherValidator error message should return verbose_name #4134

Closed
5 of 6 tasks
FingerLiu opened this issue May 20, 2016 · 3 comments
Closed
5 of 6 tasks

UniqueTogetherValidator error message should return verbose_name #4134

FingerLiu opened this issue May 20, 2016 · 3 comments

Comments

@FingerLiu
Copy link

FingerLiu commented May 20, 2016

Checklist

  • I have verified that that issue exists against the master branch of Django REST framework.
  • I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
  • This is not a usage question. (Those should be directed to the discussion group instead.)
  • This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
  • I have reduced the issue to the simplest possible case.
  • I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)

Steps to reproduce

  1. def model with unique_together attr
class Category(models.Model):
     name = models.CharField(max_length=20, verbose_name=_('name'))
     parent = models.ForeignKey('self', related_name='children', verbose_name=_('name'))
     class Meta:
           unique_together = ('name', 'parent',)

and create ModelViewSet for the model
2. create category(name='a', parent=1)
3. call create request with data (name='a', parent=1)

Expected behavior

Since I have set USE_I18N = True and USE_L10N = True, and added locale/xxx/django.po correctly.
I expect a error message well translated.

Actual behavior

fields with verbose_name are not translated.
As below
image

I've inspsected the DRF code, there are not any logic dealing with verbose_name in UniqueTogetherValidator.
Currently it just get field name of serializer field and return it to error_message of UniqueTogetherValidator.
As blow
https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/validators.py#L149

Is this by purpose or by mistake?
I can try to make a PR with test case and fix if it is needed.

@FingerLiu FingerLiu changed the title UniqueTogetherValidator error message should return UniqueTogetherValidator error message should return verbose_name May 20, 2016
@tomchristie
Copy link
Member

Haven't attempted to replicate, but appears to be a valid issue from the description.
Would be interesting to know if this is only an issue for the translated case, or it it's an issue always.
Also if anyone is able to replicate and confirm please do pitch in.

@FingerLiu
Copy link
Author

@tomchristie this is only an issue for the translated case

@tomchristie
Copy link
Member

Believe this to be closed by #3435

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants