Why does it have to be abstract? NamedEntity and Entity are also not
abstract.

https://github.com/urievenchen/speedy-net/blob/master/speedy/net/accounts/models.py

Uri.


*Uri Even-Chen*
[image: photo] Phone: +972-54-3995700
Email: [email protected]
Website: http://www.speedysoftware.com/uri/en/
<http://www.facebook.com/urievenchen>  <http://plus.google.com/+urievenchen>
  <http://www.linkedin.com/in/urievenchen>  <http://github.com/urievenchen>
<http://twitter.com/urievenchen>

On Tue, Dec 13, 2016 at 5:56 PM, GMail <[email protected]> wrote:

> Hi!
>
> First guess - SpeedyComposerNamedEntity is not an abstract model. Meta is
> not inherited from NamedEntity, you have to do that explicitly:
>
> class SpeedyComposerNamedEntity(NamedEntity):
>     ...
>
>     class Meta(NamedEntity.Meta):
>         pass
>
>     ...
>
>
> On 13 Dec 2016, at 18:30, Uri Even-Chen <[email protected]> wrote:
>
> Dear Django Users,
>
> I'm trying to write the models of Speedy Composer in Django 1.10.4, but I
> can't run makemigrations - I get this error message:
>
> speedy\composer>manage.py makemigrations
> SystemCheckError: System check identified some issues:
>
> ERRORS:
> compose.Composition.accompaniment: (models.E006) The field
> 'accompaniment' clashes with the field 'accompaniment' from model 'compose.
> speedycomposernamedentity'.
> compose.Composition.folder: (models.E006) The field 'folder' clashes with
> the field 'folder' from model 'compose.speedycomposernamedentity'.
> compose.Composition.user: (models.E006) The field 'user' clashes with the
> field 'user' from model 'accounts.entity'.
> compose.Folder.user: (models.E006) The field 'user' clashes with the field
> 'user' from model 'accounts.entity'.
>
> This is my new models.py file of my new app, speedy.composer.compose (from
> PyCharm):
>
> from django.conf import settings
> from django.db import models
> from django.utils.translation import ugettext_lazy as _
>
> from speedy.net.accounts.models import NamedEntity
>
>
> class SpeedyComposerNamedEntity(NamedEntity):
>     MIN_USERNAME_LENGTH = 1
>     MAX_USERNAME_LENGTH = 200
>     MIN_SLUG_LENGTH = 1
>     MAX_SLUG_LENGTH = 200
>     MIN_NAME_LENGTH = 1
>     MAX_NAME_LENGTH = 200
>
>     def __str__(self):
>         return '{}'.format(self.name)
>
>
> class ChordsTemplate(SpeedyComposerNamedEntity):
>
>     class Meta:
>         verbose_name = _('chords template')
>         verbose_name_plural = _('chords templates')
>
>
> class Accompaniment(SpeedyComposerNamedEntity):
>
>     class Meta:
>         verbose_name = _('accompaniment')
>         verbose_name_plural = _('accompaniments')
>
>
> class Folder(SpeedyComposerNamedEntity):
>     user = models.ForeignKey(verbose_name=_('user'), 
> to=settings.AUTH_USER_MODEL, related_name='+')
>
>     class Meta:
>         verbose_name = _('folder')
>         verbose_name_plural = _('folders')
>
>
> class Composition(SpeedyComposerNamedEntity):
>     user = models.ForeignKey(verbose_name=_('user'), 
> to=settings.AUTH_USER_MODEL, related_name='+')
>     folder = models.ForeignKey(verbose_name=_('folder'), to=Folder, 
> related_name='+')
>     chords_template = models.ForeignKey(verbose_name=_('chords template'), 
> to=ChordsTemplate, related_name='+')
>     accompaniment = models.ForeignKey(verbose_name=_('accompaniment'), 
> to=Accompaniment, related_name='+')
>     tempo = models.SmallIntegerField(verbose_name=_('tempo'), default=105)
>     public = models.BooleanField(verbose_name=_('public'), default=False)
>
>     class Meta:
>         verbose_name = _('composition')
>         verbose_name_plural = _('compositions')
>
> You can see the speedy.net code on GitHub: 
> https://github.com/urievenchen/speedy-net
>
> What did I do wrong? Did I write the models wrongly?
>
> Thanks,
>
> Uri.
>
>  *Uri Even-Chen*
>
> [image: photo] Phone: +972-54-3995700
> Email: [email protected]
> Website: http://www.speedysoftware.com/uri/en/
> <http://www.facebook.com/urievenchen>
> <http://plus.google.com/+urievenchen>
> <http://www.linkedin.com/in/urievenchen>  <http://github.com/urievenchen>
> <http://twitter.com/urievenchen>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/CAMQ2MsGdLb%2BHXtGF4ss_vDb_fsW%3DHv4e5e%
> 3DUskbBJfzt3CFunw%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAMQ2MsGdLb%2BHXtGF4ss_vDb_fsW%3DHv4e5e%3DUskbBJfzt3CFunw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/6DD8F859-10C2-4670-9446-49F59E7D1165%40gmail.com
> <https://groups.google.com/d/msgid/django-users/6DD8F859-10C2-4670-9446-49F59E7D1165%40gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAMQ2MsH%2BoC_t8utGZEag-3L%2Bp%2Bw_Ez7deD-bDUSG8C%3DXjtaB-g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to