как решить эту проблему: недопустимый литерал для int () с основанием 10: «BA-BRS01» после импорта данных из файла CSV - PullRequest
0 голосов
/ 21 мая 2018

Если быть кратким, у меня есть модель с именем drilling, она содержит 4 внешних ключа из 4 других таблиц моделей.когда я импортировал данные из файла csv в свою таблицу drilling с помощью браузера БД для SQLite, импорт завершился успешно.когда я сейчас перехожу на страницу drilling.html, я не могу ее загрузить.это ошибка:

ValueError at /project/
  invalid literal for int() with base 10: 'B-A-BRS01'

И они перенаправляют меня туда, где произошла ошибка:

104 <td>{{ drilling.project_name }}</td> (that is in the drilling.html line 104)

это часть моей drilling модели:

project_name = models.ForeignKey(Project)
drill_date = models.DateField(default= '2000-01-01')
shift = models.CharField(max_length = 1, choices = DRILLING_SHIFT)
holes_drilled = models.IntegerField(blank = False, null = True)
meters_drilled = models.DecimalField(blank = False, decimal_places=2, max_digits=10, null = True)
avgdepth_drilled = models.DecimalField(blank = True, decimal_places=2, max_digits=10, null = True)
targetmeters_drilled = models.CharField(max_length = 1, choices = TARGET_MET)
comment = models.CharField(max_length = 220, blank = True, null = True)
geologist = models.ForeignKey(Personel, related_name='Geologist')
driller = models.ForeignKey(Personel, related_name='Driller')
auger = models.ForeignKey(Auger)
client = models.ForeignKey(Client)
vehicle = models.ForeignKey(Vehicle)

часть модели персонала (одно из полей сверления с внешними ключами):

class Personel(models.Model):
personel_full_name = models.CharField(max_length = 220, blank = False, null = False)
personel_designation = models.CharField(max_length = 200, choices = DESIGNATION, default=DESIGNATION[0][0])
personel_email = models.CharField(max_length = 220, blank = True, null = True)
personel_contact = models.CharField(max_length = 220, blank = True, null = True)
timestamp = models.DateTimeField(auto_now_add = True, auto_now = False)
updated = models.DateTimeField(auto_now_add = False, auto_now = True)

def __str__(self):
    return self.personel_full_name
    # +" ("+self.personel_designation+")"
def __unicode__(self):
    return self.id, self.personel_full_name
    # +" : "+self.personel_designation

часть бурения. Html:

<tbody>
            {% for drilling in drillings %}
                <tr>
                    <td><a href="">{{ drilling.project_name}}</a></td>
                    <td><a href="">{{ drilling.drill_date}}</a></td>
                    <td><a href="">{{ drilling.shift}}</a></td>
                    <td><a href="">{{ drilling.holes_drilled}}</a></td>
                    <td><a href="">{{ drilling.meters_drilled}}</a></td>
                    <td><a href="">{{ drilling.avgdepth_drilled}}</a></td>
                    <td><a href="">{{ drilling.targetmeters_drilled}}</a></td>
                    <td><a href="">{{ drilling.comment}}</a></td>
                    <td><a href="">{{ drilling.geologist}}</a></td>
                    <td><a href="">{{ drilling.driller}}</a></td>
                    <td><a href="">{{ drilling.auger}}</a></td>
                    <td><a href="">{{ drilling.client}}</a></td>
                    <td><a href="">{{ drilling.vehicle}}</a></td>

Я также хотел бы добавить или напомнитьчто в браузере Db, когда поля чужих хэев хранятся в целочисленных полях и их имена также изменяются путем добавления _id: например, если я назвал поле внешнего ключа как project_name, БД сделает его project_name_idи сохраните идентификатор этой самой записи вместо значения, указанного в модели.

пожалуйста, любая помощь будет с радостью принята.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...