django-modeltranslation icon indicating copy to clipboard operation
django-modeltranslation copied to clipboard

django.db.utils.ProgrammingError in update_translation_fields

Open aalebedev opened this issue 9 years ago • 6 comments

Hi!

I have the file (translation.py):

from modeltranslation.translator import translator, TranslationOptions
from django.contrib.flatpages.models import FlatPage
from staticpages.models import ExtendedFlatPage # inherited from FlatPage

class FlatPageTranslationOptions(TranslationOptions):
    pass

class ExtendedFlatPageTranslationOptions(FlatPageTranslationOptions):
    fields = ('title', 'content')

translator.register(FlatPage, FlatPageTranslationOptions)
translator.register(ExtendedFlatPage, ExtendedFlatPageTranslationOptions)

And I got the following error:

File "d:\projects\mesto.ua\mesto\.buildout\eggs\django-1.7.6-py2.7.egg\django\db\backends\utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: missing FROM-clause entry for table "django_flatpage"
LINE 1: ..."staticpages_extendedflatpage" SET "content_ru" = "django_fl...
                                                             ^

django-1.7.6, django-modeltranslation-0.9

aalebedev avatar Apr 21 '15 06:04 aalebedev

In Mezzanine, I use fields = () instead of pass whenever there is no (or no more) fields to translate. Can you make the change to see if it helps solving your issue?

Kniyl avatar May 12 '15 15:05 Kniyl

Thanks! I have tried fields = (), and I got the same exception. ExtendedFlatPage (is inherited from FlatPage) haven't title and content fields, but I attach translation fields (title_* and content_*) to ExtendedFlatPage instead of FlatPage. It seems to me, the command is not so flexible to handle this situation.

aalebedev avatar May 13 '15 06:05 aalebedev

Just got hit by this same issue. @aalebedev, did you find a solution for this? Thanks

dmarcelino avatar Dec 19 '18 16:12 dmarcelino

@dmarcelino Now I have my own models of flat pages, and the problem was gone :) When I used django-modeltranslations on Django's FlatPage, I wrote my own version of "update_translation_fields" command. It was copy of original command with extra lines, something like if model in (ExtendedFlatPage, FlatPage): continue. "Dirty" solution :)

aalebedev avatar Dec 19 '18 16:12 aalebedev

Gotcha! Thanks @aalebedev

dmarcelino avatar Dec 19 '18 17:12 dmarcelino

Hi,

I have the same problem when translating django-filer:

from filer.models.imagemodels import Image
from modeltranslation.translator import TranslationOptions, register


@register(File)
class FileTranslationOptions(TranslationOptions):
    fields = ()


@register(Image)
class ImageTranslationOptions(TranslationOptions):
    fields = ('description')

Used same solution as @aalebedev

lenarother avatar Apr 09 '19 09:04 lenarother