Size: a a a

2020 October 14

K

Kristina in Python Flask
источник

K

Kristina in Python Flask
ты имеешь ввиду сделать PK у device_type - device_type вместо id?
источник

K

Kristina in Python Flask
и релейшен, естественно по нему между двумя таблицами
источник

T

Tishka17 in Python Flask
Kristina
ты имеешь ввиду сделать PK у device_type - device_type вместо id?
Да
источник

T

Tishka17 in Python Flask
Kristina
и релейшен, естественно по нему между двумя таблицами
Да
источник

T

Tishka17 in Python Flask
Он у тебя все равно юник
источник

T

Tishka17 in Python Flask
И мне кажется, вряд ли он должен быть редактируемым
источник

K

Kristina in Python Flask
все верно, не редактируемый. спасибо за идею!
источник

T

Tishka17 in Python Flask
Kristina
все верно, не редактируемый. спасибо за идею!
https://t.me/ru_flask/74287 тогда вот этот код с банальным релейшеном прокатит
источник

K

Kristina in Python Flask
чет не хочет

'name': ‘mobile_phone, 'device_type_name': <app.models.device_type.DeviceType object at 0x109842b20>,
источник

K

Kristina in Python Flask
модели
class DeviceType(Base):
   __tablename__ = "device_type"
   device_type = Column(String, primary_key=True, index=True)


class Device(Base):
   __tablename__ = "devices"

   id = Column(Integer, primary_key=True, index=True)
   name = Column(String)
   device_type_name = Column(String, ForeignKey("device_type.device_type"))
   device_type = relationship("DeviceType")
источник

K

Kristina in Python Flask
device_type = models.DeviceType(device_type=device.device_type_name)
request_data_dict = device.dict().copy()
request_data_dict["device_type_name"] = device_type
device_in_db = models.Device(**request_data_dict)

db.add(device_in_db)
db.commit()
db.refresh(device_in_db)
источник

T

Tishka17 in Python Flask
Kristina
чет не хочет

'name': ‘mobile_phone, 'device_type_name': <app.models.device_type.DeviceType object at 0x109842b20>,
Эээ
источник

T

Tishka17 in Python Flask
Что за жесть?
источник

T

Tishka17 in Python Flask
Kristina
device_type = models.DeviceType(device_type=device.device_type_name)
request_data_dict = device.dict().copy()
request_data_dict["device_type_name"] = device_type
device_in_db = models.Device(**request_data_dict)

db.add(device_in_db)
db.commit()
db.refresh(device_in_db)
Зачем ты девайс тайп пихнул в девайс тайп нейм?
источник

K

Kristina in Python Flask
Tishka17
Зачем ты девайс тайп пихнул в девайс тайп нейм?
это филд который подвязан на релейшен, я туда и шлю модельку, как ты говорил
источник

K

Kristina in Python Flask
Tishka17
Я бы предположил что-то такое


dtype = DeviceType(device_type=device_type)
db_dev = Device(
 name=device.name.lower(),
 device_type = dtype
)
db.session.add(db_dev)


device_type - релейшн, с правильными on_update
тут
источник

T

Tishka17 in Python Flask
Kristina
это филд который подвязан на релейшен, я туда и шлю модельку, как ты говорил
Нет, релейшн у тебя другой. Это фк
источник

K

Kristina in Python Flask
а. а как правильно тогда должно быть?
источник

T

Tishka17 in Python Flask
Связанный объект в релейшн пихай
источник