Comments (6)
Hi! thanks for getting in touch.
I'm curious what kind of code you're working with, because I can't quite understand the situation from the error message alone. It almost looks like you're connecting to the translated model directly instead of the shared model. Can you post something here, or as a Gist? That way I can also share some caveats. :)
from django-parler.
Here's what I'm doing. It's pretty basic; trying to work solely with the shared model, too. Let me know if you need more info.
from django-parler.
The main problem here is that a ManyToManyField
- despite its name - is not a real field. Every M2M field creates a table which links the models together.
Given the following models:
class A(TranslatedModel):
translations = TranslatedFields(
b_set = models.ManyToManyField('B', related_name='a_set')
)
class B(models.Model):
pass
You get an implicit translation model for A:
class ATranslation(models.Model):
b_set = models.ManyToManyField('B', related_name='a_set')
And an implicit M2M model:
class ATranslation_b(models.Model):
atranslation = models.ForeignKey('A')
b = models.ForeignKey('B')
This M2M table can be used to navigate from a translated A to B just fine, but the related_name
in B is kinda useless as you end up reaching the translation model which is counter intuitive.
A modified TranslatedManyToManyField
could be smart and run A.objects.filter(translations__language=get_current_language(), translations__b_set=b)
in the related manager and only give you B objects of the current language.
This is a tough nut to crack as it will probably require a lot of tinkering with Django internals. It would be a great addition to django-parler though.
from django-parler.
@egasimus Without traceback almost always is harder to tell why some error is raised.
I saw your error when preparing a patch for #131. I'm not sure if this error is raised for you at the same place where it was raised for me (In the TranslatedFieldsModel._get_field_values()
when running under Django 1.8). You can test my changes in #132 to see if it will work for you.
In order to fully support M2M fields in django-parler I think that more work need to be done, but probably my changes are the beginning.
from django-parler.
Thread necromancy. I added M2M support in #300.
from django-parler.
PR is merged!
from django-parler.
Related Issues (20)
- django-hvad migration: How to modify old migrations?
- django-treebeard
- Clearing FileField don't work
- dumpdata & loaddata manage.py command with django parler HOT 1
- "wrong number of arguments for 'del' command" when deleting TranslatableModel using Redis cache
- Django Parler shows translated object one time per translation on the admin list HOT 5
- Store translated model to/from more than one database fails
- get_or_create not working HOT 2
- (Bug) `bulk_create` on TranslatableModel HOT 1
- (Bug) Redis cache "wrong number of arguments for 'del' command"
- Async and parler
- Is the package still maintained? HOT 2
- django-parler does not honor validators attribute -- validation possible at all?
- how to translate a form with parler_tags.
- django-parler with unique field raise IntegrityError
- how do I translate a easy_thumbnails.fields.ThumbnailerImageField
- Tags are not being saved when using django-taggit with django-parler.
- Creation of the parent, although max length has been exceeded
- Custom manager is not working
- What's the status of the project? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-parler.