1

Please help! I tried searching for an answer, but I think this issue is too specific to have a generalized enough solution.

It's very difficult for me to pin point when, exactly, it is that this error started. I've Attempted too many changes now to know when the site was last working. I'm very new to this. And entirely self-taught, at that. I can assure you, it will be apparent.

when attempting to migrate I receive this error:

when attempting to migrate I receive this error:

     Apply all migrations: admin, auth, contenttypes, purchase_log, sessions
Running migrations:
  Applying purchase_log.0009_auto_20161005_1524...Traceback (most recent call la
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    utility.execute()
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    self.execute(*args, **cmd_options)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    output = self.handle(*args, **options)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    fake_initial=fake_initial,
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_i
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    state = migration.apply(state, schema_editor)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    operation.database_forwards(self.app_label, schema_editor, old_state, projec
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    field,
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    self._remake_table(model, create_fields=[field])
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    self.effective_default(field)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    default = field.get_db_prep_save(default, self.connection)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    return self.target_field.get_db_prep_save(value, connection=connection)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    prepared=False)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    value = self.get_prep_value(value)
  File "C:\Users\jdcar\AppData\Local\Programs\Python\Python35-32\lib\site-packag
    return int(value)
TypeError: int() argument must be a string, a bytes-like object or a number, not

I'm going insane, and have no idea where to start! Please help!

edit: Here is the .models.py

from django.db import models
from django.contrib.auth.models import User


class Store(models.Model):
    name = models.CharField(max_length=250)
    owner = models.ForeignKey(User)

    def __str__(self):
        return self.name


class Product(models.Model):
    type = models.CharField(max_length=250)
    owner = models.ForeignKey(User)

    def __str__(self):
        return self.type


class Receipt(models.Model):
    store = models.ForeignKey(Store)
    date = models.DateField()
    line_items = models.ManyToManyField(Product, through='ReceiptProduct')
    owner = models.ForeignKey(User)

    def __str__(self):
        return self.store.name + ': ' + str(self.date)


class ReceiptProduct(models.Model):
    receipt = models.ForeignKey(Receipt)
    product = models.ForeignKey(Product)
    price = models.FloatField()
    sale = models.BooleanField()
    description = models.CharField(max_length=500, null=True, blank=True)
    owner = models.ForeignKey(User)

    def __str__(self):
        return self.product.type

edit: Here is migration 0009_auto_20161005_1524.py

# -*- coding: utf-8 -*-
# Generated by Django 1.10.1 on 2016-10-05 19:24
from __future__ import unicode_literals

from django.conf import settings
import django.contrib.auth.models
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('purchase_log', '0008_receiptproduct_sale'),
    ]

    operations = [
        migrations.AddField(
            model_name='product',
            name='owner',
            field=models.ForeignKey(default=django.contrib.auth.models.User, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='receipt',
            name='owner',
            field=models.ForeignKey(default=django.contrib.auth.models.User, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='receiptproduct',
            name='owner',
            field=models.ForeignKey(default=django.contrib.auth.models.User, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='store',
            name='owner',
            field=models.ForeignKey(default=django.contrib.auth.models.User, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
    ]
12
  • Post the content of your models.py Commented Oct 6, 2016 at 19:13
  • Why did you cut the last part of the error message? not <what>? Commented Oct 6, 2016 at 19:14
  • This appears to be copied from a partial screen grab, with lots of it cut off. Please post the entire error traceback. Commented Oct 6, 2016 at 19:22
  • @JohnGordon it actually is the whole message. It just kind of cuts off there and that's part of my confusion. That really is the entire error traceback. Commented Oct 7, 2016 at 16:04
  • @Bakuriu It really does just cut off there. That's honestly part of my confusion. Commented Oct 7, 2016 at 16:05

2 Answers 2

3

Problem solved, thanks to @MosesKoledoye.

I deleted the migrations folder inside the app that was causing the problem. And recreated it by running 'python manage.py makemigrations <appname>' I then migrated to the server, and everything was great.

Thank you, @MosesKoledoye

Sign up to request clarification or add additional context in comments.

Comments

3

This does not answer the original question, but it may help others who end up here based on the title.

One of many ways to get this error message is to use get_or_create() and forget it actually returns a tuple, as in the following example.

foo = Foo.objects.get_or_create(some_attribute='something')  # foo is actually a tuple...
Bar.objects.get_or_create(foo=foo)  # this will raise the error

The second call to get_or_create() raises the error (at least in Django 2.2):

TypeError: int() argument must be a string, a bytes-like object or a number, not 'Foo'

This message is not very helpful, in my opinion. Note that a similar (erroneous) call to Bar.objects.create(), instead of get_or_create(), does yield a very clear error message.

The solution in this case is simple:

foo, created = Foo.objects.get_or_create(...

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.