我有 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
那里!我在 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) 我有一个带有两个InnoDB表的MySQL数据库,我使用phpMyAdmin v4.5.2进行管理.该表在"id"列上具有外键约束.
当我定义"内部关系"然后转到表的"插入"页面时,我现在看到我的列旁边的新图标,其中定义了内部关系.这很好但是当我点击图标时我只能查找ID值...
如果我可以通过"名称"列(即SYMBOL varchar字段)对内部关系进行查找,那么真正好的是,但是在选择项目时,它会将该行的ID(SYMBOL_LIST_ID列)填充到插入字段.我一直在寻找,但未能找到如何做到这一点的例子 - 有没有人设置这种类型的内部关系功能?谢谢!
这是我的表结构的一个例子:http: //sqlfiddle.com/#!9/4e921/1
在我的需求量的我想列出与关系数据的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) 我创建了一个出价模型,以便第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: …
我目前正在上大学的课程项目,涉及一个测验,该测验将所有背景数据存储在数据库中。通过添加外键,我试图找到一种方法来合并两个表之间的外键数据。例如,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 /数据。谢谢。
我正在尝试使用以下查询将外键添加到现有列中
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”中发生了冲突。
注意: 在将其标记为重复之前,我想告诉大家我已经解决了stackoverflow和其他网站中的所有这些相关问题,但是我没有任何合适的解决方案,所以这就是为什么我在这里寻求帮助。
我有两个表:员工和罚款
在罚金表中fine_id是PK,employee_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
ems_db。#sql-dd4_35,在更新级联上删除级联时使用CONSTRAINT fine_fkFOREIGN KEY(fine_id)参考fines(fine_id))以下是图片:
员工表
罚款表
错误 …
我正在开发一个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) 它是这样的:
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) foreign-keys ×10
mysql ×3
django ×2
sql ×2
sql-server ×2
sqlite ×2
database ×1
django-views ×1
gridview ×1
internal ×1
laravel ×1
phpmyadmin ×1
python ×1
relation ×1
templates ×1
typeerror ×1
xampp ×1
yii2 ×1