标签: foreign-keys

在django模板中显示外键字段

我有 models.py 如下所示:

class Profile(models.Model):

    user = models.OneToOneField(User)

    def __unicode__(self):
        return "%s" % self.user

class Student(models.Model):

    user = models.ForeignKey(Profile)
    phone_num = models.CharField(max_length=15)

    def __unicode__(self):
        return "%s" % (self.user)

class Teacher(models.Model):

    user = models.ForeignKey(Profile)
    phone_num = models.CharField(max_length=15)

    def __unicode__(self):
        return "%s" % (self.user)

class Complaint(models.Model):

    user = models.ForeignKey(Student)
    complaint = models.TextField()
    teacher = models.ForeignKey(Teacher, null=True) 

    def __unicode__(self):
        return "%s : %s" % (self.complaint)
Run Code Online (Sandbox Code Playgroud)

如何显示最终存储在班级配置文件中的教师姓名当我这样做时,我得到的是_complaint表中的 一列Teacher_id

student_obj = Student.objects.get(name=user_profile_instance)
Run Code Online (Sandbox Code Playgroud)

进而

compaint = student_obj.complaint_set.values()
Run Code Online (Sandbox Code Playgroud)

在投诉.html 中

{{complaint.teacher_id}}
Run Code Online (Sandbox Code Playgroud)

我想要的是老师的名字而不是id

django templates foreign-keys

0
推荐指数
1
解决办法
6083
查看次数

sqlite3中复合外键的问题

那里!我在 sqlite3 中有一个失败的外键约束,我真的不知道为什么。我正在使用此处描述的复合外键(http://www.sqlite.org/foreignkeys.html#fk_composite)和“普通”外键。

这是我的模式:

sqlite> .schema sources
CREATE TABLE sources(
    source_id VARCHAR(16) NOT NULL,
    source_type INTEGER NOT NULL,
    title VARCHAR(128) NOT NULL,
    year INTEGER,
    month INTEGER,
    PRIMARY KEY(source_id),
    UNIQUE(title)
);
sqlite> .schema author_aliases
CREATE TABLE author_aliases(
    author_id INTEGER NOT NULL,
    alias_id INTEGER NOT NULL,
    forenames VARCHAR(128),
    surname VARCHAR(128) NOT NULL,
    PRIMARY KEY(author_id, alias_id),
    FOREIGN KEY(author_id) REFERENCES authors(author_id),
    UNIQUE(forenames, surname)
);
sqlite> .schema alias_source_relations
CREATE TABLE alias_source_relations(
    source_id VARCHAR(16) NOT NULL,
    author_id INTEGER NOT NULL,
    alias_id INTEGER NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

sql sqlite foreign-keys

0
推荐指数
1
解决办法
3489
查看次数

可以将phpMyAdmin"内部关系"配置为在一列上执行查找并从另一列插入值吗?

我有一个带有两个InnoDB表的MySQL数据库,我使用phpMyAdmin v4.5.2进行管理.该表在"id"列上具有外键约束.

当我定义"内部关系"然后转到表的"插入"页面时,我现在看到我的列旁边的新图标,其中定义了内部关系.这很好但是当我点击图标时我只能查找ID值...

如果我可以通过"名称"列(即SYMBOL varchar字段)对内部关系进行查找,那么真正好的是,但是在选择项目时,它会将该行的ID(SYMBOL_LIST_ID列)填充到插入字段.我一直在寻找,但未能找到如何做到这一点的例子 - 有没有人设置这种类型的内部关系功能?谢谢!

这是我的表结构的一个例子:http: //sqlfiddle.com/#!9/4e921/1

mysql foreign-keys phpmyadmin internal relation

0
推荐指数
1
解决办法
1067
查看次数

Yii2 gridview关系数据搜索所有列

在我的需求量的我想列出与关系数据的GridView控件,我有两个表tbl_work(ID,workid,cdr_id tbl_cd的(foreign_key))和tbl_cd(ID,主叫,被叫).

在工作模型和有一个关系的CD模型.然后我用tb_work表创建了一个网格,并显示了tbl_cd表记录.

工作模型中的搜索功能

$query = AuditorWorkItems::find();
        $query->with("cd");

        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
    $query->andFilterWhere([
        'id' => $this->id,
        'workid' => $this->workid,
        'cdr_id' => $this->cdr_id
    ]);

        return $dataProvider;
Run Code Online (Sandbox Code Playgroud)

在我的网格中

 <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'columns' => [
                ['class' …
Run Code Online (Sandbox Code Playgroud)

gridview foreign-keys yii2

0
推荐指数
1
解决办法
2444
查看次数

Python:如何在我的Django模板中传递外键的值?

我创建了一个出价模型,以便第2类用户可以对第1类用户创建的某些"帖子"出价.为实现这一目标,我在"Bid"模型中为post field创建了一个外键.

实际上我想将出价与'post'模型中的自动生成'id'的特定帖子联系起来.所以我在我的模板中将get_absolute_url放在Post'id'旁边.我是django的新手,我不确定它是否适用于我想要的东西.

如何将出价与post_id关联到模板中的特定帖子,以便我可以获得各种类型2用户针对特定帖子的出价金额?我很乐意帮助我解决这个问题.

这是我的代码:

Models.py:

class Post(models.Model):

    post_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    from1 = models.CharField(max_length=20)
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)

    objects = PostManager()

    def __str__(self):
        return self.post_id

    def get_absolute_url(self):
        return reverse("posts:detail", kwargs={"id": self.post_id})

    class Meta:
        ordering = ["-timestamp", "-Time"]

class Bid(models.Model):

    bid_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    post = models.ForeignKey(Post, default=uuid.uuid4, related_name='bids' )
    user = models.OneToOneField(settings.AUTH_USER_MODEL, null=True, blank=True, unique=False)
    amount = models.IntegerField()

    def get_absolute_url(self):
        return reverse("accept_bid", kwargs={"bid_id": self.bid_id})

    def __unicode__(self):
        return self.amount

    def __str__(self):
        return self.amount
Run Code Online (Sandbox Code Playgroud)

forms.py: …

django foreign-keys django-models django-views

0
推荐指数
1
解决办法
1333
查看次数

不断收到错误TypeError:函数最多接受2个参数(给定3个)

我目前正在上大学的课程项目,涉及一个测验,该测验将所有背景数据存储在数据库中。通过添加外键,我试图找到一种方法来合并两个表之间的外键数据。例如,users表存储用户数据及其用户ID。数据表将存储有关测验级别等信息以及该特定用户ID。插入数据时如何从两个表中自动更新该信息?

该方法似乎不起作用,下面是一些代码。

difficulty= (1,)
users_id = (1,)  

#values of variables

def users_level(db,cursor,difficulty,users_id):

   cursor.execute("insert into Data (Level,UsersID) VALUES (?,?)",(difficulty),(users_id))

   db.commit()
Run Code Online (Sandbox Code Playgroud)

然后出现错误:

   cursor.execute("insert into Data (Level,UsersID) VALUES (?,?)",(difficulty),(check_id))
TypeError: function takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

有解决这个问题的方法吗?或者可能是一种更容易/更有效的方法,可以使用外键从其他表中自动增加ID /数据。谢谢。

python sqlite foreign-keys relational-database typeerror

0
推荐指数
1
解决办法
4540
查看次数

如何将外键添加到SQL Server 2012中的现有列

我正在尝试使用以下查询将外键添加到现有列中

ALTER TABLE Sub_Category_Master 
ADD FOREIGN KEY (Category_ID) REFERENCES Category_Master(Category_ID)
Run Code Online (Sandbox Code Playgroud)

但我遇到一个错误

ALTER TABLE语句与FOREIGN KEY约束“ FK__Sub_Categ__Categ__5812160E”发生冲突。在数据库“ shaadikarbefikar_new”的表“ shaadikarbefikar.Category_Master”的列“ Category_ID”中发生了冲突。

sql sql-server foreign-keys

0
推荐指数
1
解决办法
1万
查看次数

#1452-无法添加或更新子行:外键约束失败

注意: 在将其标记为重复之前,我想告诉大家我已经解决了stackoverflow和其他网站中的所有这些相关问题,但是我没有任何合适的解决方案,所以这就是为什么我在这里寻求帮助。

我有两个表:员工罚款

罚金表中fine_idPKemployee_id也是FK雇员PK的 引用employee_id

现在,我创建fine_id(在表列名员工)作为FK引用fine_id罚款表。

我通过XAMPP PHPMYADMIN添加约束,它会自动生成以下查询:

ALTER TABLE employees ADD CONSTRAINT fine_fk FOREIGN KEY (fine_id) REFERENCES fines(fine_id) ON DELETE CASCADE ON UPDATE CASCADE;

但是,我在运行此错误 SQL Query

1452-无法添加或更新子行:外键约束失败(ems_db#sql-dd4_35,在更新级联上删除级联时使用CONSTRAINT fine_fkFOREIGN KEY(fine_id)参考finesfine_id))

以下是图片:

员工

在此处输入图片说明

罚款

在此处输入图片说明

错误 …

mysql database xampp foreign-keys

0
推荐指数
1
解决办法
4115
查看次数

Laravel迁移"无法添加外键约束"错误与MySQL数据库

我正在开发一个Laravel应用程序.我正在使用MySQL作为数据库.我创建了一个模型类,并尝试在其上运行迁移.但是,当我运行迁移时,我在添加外键约束时遇到错误.这就是我到目前为止所做的.

首先,我迁移了运行此命令的内置Laravel用户模型.

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

users表是在数据库中创建的.

然后我创建了另一个运行此命令的模型.

php artisan make:model TodoItem -m
Run Code Online (Sandbox Code Playgroud)

然后我将以下代码添加到迁移文件中.

class CreateTodoItemsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('todo_items', function (Blueprint $table) {
            $table->text('about');
            $table->integer('user_id');
            $table->increments('id');
            $table->timestamps();

            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('todo_items');
    }
}
Run Code Online (Sandbox Code Playgroud)

如上所示,我通过向todo_items表添加外键来构建users表和todo_items表之间的关系.然后,我尝试通过运行此命令来迁移TodoItem模型.

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

当我运行命令时,我收到此错误.

  Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys laravel laravel-migrations

0
推荐指数
1
解决办法
1196
查看次数

约束可能导致循环或多个级联路径

它是这样的:

public class ApplicationUser : IdentityUser
{
    // omitted for the sake of brevity...

    public string LastName { get; set; }
    public string FirstName { get; set; }

    public string Email { get; set; }
}

public class Invoice
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Index(IsUnique = true)]
    [Required]
    public int No { get; set; }

    [Required]
    public DateTime Created { get; set; }

    [Required]
    public string ManagerId { get; set; }
    public virtual ApplicationUser Manager …
Run Code Online (Sandbox Code Playgroud)

sql-server entity-framework foreign-keys ef-migrations

0
推荐指数
1
解决办法
176
查看次数