1
빠른 인터넷 검색이 제대로 QDjango의 외래 키를 사용하는 방법에 어떤 결과를 반환하지만 실제로이를 사용하는 방법에 대한 좋은 예를 찾을 수 없습니다.qdjango 외래 키
빠른 인터넷 검색이 제대로 QDjango의 외래 키를 사용하는 방법에 어떤 결과를 반환하지만 실제로이를 사용하는 방법에 대한 좋은 예를 찾을 수 없습니다.qdjango 외래 키
그것의 아주 오래된, 어쩌면 다른 사람이 ... 내가 옛날에 QDjango에서 FKS 검색 및 google group에서 뭔가를 찾을 도움이 될 것입니다, 또한 내가 테이블을 만들
몇 가지 기본적인 예 (하지만 FK 예)와 nice documentation가 (또한 외래 키)이 방법으로 QDjango를 사용하여 모델 :
class Role : public QDjangoModel { ... };
class User : public QDjangoModel
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(QString password READ password WRITE setPassword)
Q_PROPERTY(Role *role READ role WRITE setRole)
Q_CLASSINFO("name", "max_length=255")
Q_CLASSINFO("password", "max_length=255")
Q_CLASSINFO("role", "on_delete=cascade")
QString mName;
QString mPassword;
public:
User(QObject *parent = 0);
QString name() const { return mName; }
void setName(QString name) { mName = name; }
QString password() const { return mPassword; }
void setPassword(QString pass) { mPassword = pass; }
Role *role() const;
void setRole(Role *role);
};
당신은 컬럼에 일부 속성을 설정하는 Q_CLASSINFO를 사용할 수 있습니다. 외래 키는 생성자에서 바인딩되고 역할 함수로 채워집니다.
User::User(QObject *parent)
: QDjangoModel(parent)
{
setForeignKey("role", new Role(this));
}
Role *User::role() const
{
return qobject_cast<Role *>(foreignKey("role"));
}
void User::setRole(Role *role)
{
setForeignKey("role", role);
}
당신이 FK 종속 테이블의 사용으로 이 undescores 물론이 필드를 사용하여 선택합니다
같은 (다만 나중에 선택 가입 생산하는 데 사용되는 몇 가지 플래그 설정) selectRelated()를 사용 : 을QDjangoQuerySet<User> matched;
matched = matched.selectRelated()
.filter(QDjangoWhere("role__rolename", QDjangoWhere::Equals, "admin"));
감사! 적어도 그것은 후손을위한 한 장소에있을 것입니다 :) – qdot